Tagprogramming

Consuming message queues using .net core background workers – part 4: adding System.Threading.Channels

Apparently I was not done yet with this Series! Few days ago I got a comment on Part 3, asking how would I mix background workers with System.Threading.Channels . That comment first led me to write an introduction on the Channels library, which has been sitting on my ToDo list for too long. Then I […]

Categories: .NET, ASP.NET, Design Patterns, Microservices, Programming, RabbitMQ, Software Architecture

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 […]

Categories: .NET, Design Patterns, Programming

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 […]

Categories: Design Patterns, Microservices, Programming, RabbitMQ, Software Architecture

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 […]

Categories: .NET, ASP.NET, Microservices, Programming, RabbitMQ, Software Architecture

© 2020 Davide Guida

Theme by Anders NorenUp ↑