Idempotent Consumer - Handling Duplicate Messages
What happens when a message is retried in an event-driven system? The worst case scenario is that the message is processed twice, and the side effects...
Page 19 of 22. Practical .NET and software architecture lessons.
What happens when a message is retried in an event-driven system? The worst case scenario is that the message is processed twice, and the side effects...
EF7 introduced support for returning scalar types using SQL queries. And now we're getting support for querying unmapped types with raw SQL queries in...
Rate limiting is a technique to limit the number of requests to a server or an API. ASP.NET Core 7 has a built-in rate limiter middleware that's easy ...
Designing long-lived processes in a distributed environment is an interesting engineering challenge. A Saga is a sequence of local transactions, each ...
MediatR supports the publish-subscribe pattern with notifications, and until recently the handlers subscribing to an INotification could only execute ...
Data-driven testing is where test data comes from an external source, which is why it's also known as parameterized testing. I'm going to show you fou...
It's common to have only one DbContext for the entire application. But what if you need multiple DbContexts? We're going to explore when you may want ...
Although C# is object-oriented, it has plenty of functional features: pattern matching, switch expressions, records. And if you use LINQ, you're alrea...
How can you implement reliable communication between components in a distributed system? The Outbox pattern is an elegant solution, giving you transac...
Serilog is a popular .NET logging library, and what makes it unique is structured logging out of the box. Apply the same message format to every log a...
Join 66,000+ readers of The .NET Weekly for practical tips and resources to improve your .NET and software architecture skills.