Concurrency Control in .NET: Optimistic vs Pessimistic
Data integrity in high-traffic applications relies on how you handle concurrent updates. We compare DB locks (Pessimistic) against Row Versioning (Optimistic) in EF Core.
.NET, APIs, and server-side. Explore 22 articles in this category.
Data integrity in high-traffic applications relies on how you handle concurrent updates. We compare DB locks (Pessimistic) against Row Versioning (Optimistic) in EF Core.
Using NBomber and k6 to find the breaking points of our .NET API. Analysis of CPU vs Memory vs I/O bottlenecks.
Why BlueRobin moved from standard UUIDs to NanoIDs for primary keys: URL aesthetics, database considerations, and a custom alphabet implementation.
Caching is easy; invalidation is hard. Move beyond simple TTL (Time To Live) and learn how to implement precise, event-driven cache busting using Redis and NATS.
Implement robust error handling with Result patterns, global exception handling, and Polly resilience policies in .NET applications.
Going beyond simple webhooks. How to build a robust C# BackgroundService that listens to NATS events and manages a bidirectional Telegram Bot.
Build reliable integration tests for .NET applications using Testcontainers, WebApplicationFactory, and real database instances.
Separating reads from writes doesn't have to be complicated. Learn how to implement a practical CQRS architecture using FastEndpoints for the API and MediatR for clean command handling.
How we slashed system latency by 95% by moving from sequential HTTP calls to parallel NATS requests, implementing Redis caching, and tuning Qdrant vector search.
Implement comprehensive health checks for .NET applications with database, cache, and dependency monitoring for Kubernetes deployments.
Implement reliable background job processing with hosted services, channels, and distributed task queues in .NET applications.
Implement distributed and in-memory caching patterns in .NET applications for improved performance and reduced database load.
Decoupling frontend and backend tests by defining API contracts. How we verify Blazor/FastEndpoint compatibility in CI/CD without integration environments.
Why we chose the Document Model and RavenDB's impressive GUI, despite the challenges of a smaller ecosystem and specialized hosting requirements.
Achieve 100% reliable messaging by atomically committing state changes and events. A deep dive into the Outbox Pattern with EF Core and NATS utilizing background relay workers.
Ditch bloated controllers. Build high-performance, maintainable APIs using the Request-Endpoint-Response (REPR) pattern with FastEndpoints.
Moving from local in-memory limits to cluster-aware NATS KV partitions for fair, durable API throttling in distributed deployments.
Decouple your domain logic from EF Core. Learn how to implement Repositories for DDD Aggregates with strict interface separation.
Master domain events in C# to build reactive systems with loose coupling, eventual consistency, and clean separation of concerns.
Learn how to design aggregates that enforce business invariants, manage consistency boundaries, and encapsulate complex domain logic in your C# applications.
Learn how to implement value objects with built-in validation, equality semantics, and EF Core persistence for a cleaner, more expressive domain model.
Building a real-time notification pipeline from document processing events to Telegram messages using NATS Core, environment-prefixed subjects, and the publisher-subscriber pattern.