Solving Race Conditions With EF Core Optimistic Locking
I'll challenge you to spot the race condition in a method for reserving a booking, where you can't have two overlapping reservations for the same date...
Page 17 of 22. Practical .NET and software architecture lessons.
I'll challenge you to spot the race condition in a method for reserving a booking, where you can't have two overlapping reservations for the same date...
Unit tests are helpful, but you can't be fully confident in your application without integration tests. So this week I'll show you how to use Docker f...
Designing effective communication between services is one of the challenges of working with distributed systems. More centralization or less? More cou...
Rate limiting is about restricting the number of requests to your application. It improves security, guards against DDoS attacks, and prevents overloa...
Dapper is a lightweight object-relational mapper in .NET, easy to use and fast at the same time. But because of the nature of SQL, mapping the result ...
Modular monoliths give you the logical architecture of microservices without the operational complexity. For that to work, you need to solve how modul...
I've been using Clean Architecture for 6+ years on large scale applications serving thousands of customers. It's an evolution of the layered architect...
Domain events are a Domain-Driven Design tactical pattern for building loosely coupled systems. You raise an event from the domain to record a fact th...
Clean code is code that's easy to read, maintain, and understand. It's a skill you can learn with deliberate practice. My favorite way to practice is ...
A client application shouldn't need to know about every service in your system. An API gateway acts as a reverse proxy, accepting API calls and forwar...
Join 66,000+ readers of The .NET Weekly for practical tips and resources to improve your .NET and software architecture skills.