design patterns

How to implement Producer/Consumer with System.Threading.Channels

What’s this “Producer/Consumer” thing? It’s around us, everywhere. Every time you see some kind of workflow with multiple serial steps, that’s an example. A production line in a car factory, a fast-food kitchen, even the postal service. So why do we care about it? Well that’s easy: in almost every piece of software we write […]

Improving microservices reliability – part 3: Outbox Pattern in action

And here we are for the third and last part of the Series! Last time we talked about the Outbox Pattern and it’s now time to see it in action. The main idea is to persist in the same transaction the Entity data plus the Messages that will be eventually sent to the potential subscribers. […]

Improving microservices reliability – part 2: Outbox Pattern

Welcome back to the second part of the Series. Today we’ll talk about the Outbox Pattern. Just to recap, last time we discussed how the 2-Phase-Commit technique can help us with distributed transactions. However, it may lead to unwanted side effects and performance issues. So is there any other approach we could take? Personally I’m […]

Improving microservices reliability – part 1: Two Phase Commit

Hi everyone! Today I would like to talk a bit about how we can improve reliability between microservices. This is the first article of the series and we’ll be focusing on the Two-Phase-Commit technique. It has been a while since my last article, this is the first one I write from Montreal. I moved here […]

Consuming message queues using .net core background workers – part 3: the code, finally

And here we go with the another part of this Series! This time we’re going to take a look at the code and see how a microservice can consume messages from a queue using a background worker. Last time I introduced Background Workers and some possible use cases. The possibilities are limitless and today we’re […]

Scroll to top