CategoryProgramming

Event Sourcing in .NET Core – part 1: a gentle introduction

Event sourcing, aka “the great myth”. I’ve been thinking about writing a series of articles about this for a while, and now it’s time to put my hands back on the keyboard. I thought that with all this bull**it pandemic at least I could have had more time to write on this blog but it […]

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

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

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

© 2020 Davide Guida

Theme by Anders NorenUp ↑