OpenSleigh: a Saga management library for .NET Core

Hi All! Today I want to talk a bit about a pet project of mine I’ve been working on in the last few weeks. I called it OpenSleigh, it’s a Saga management library for .NET Core. For those who don’t know what the Saga Pattern is, Chris Richardson has a very good introduction on his […]

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

How to do Document-level locking on MongoDB and .NET Core – part 2

Hi All! Welcome back to the second article of the Series. Today we’re going to discuss a simple implementation of a locking technique on MongoDB. Last time we saw what optimistic and pessimistic locking mean and we talked about a possible implementation using two extra fields. Today instead we’ll dig into the code! As usual, […]

Categories: .NET, MongoDB, Programming

How to do Document-level locking on MongoDB and .NET Core – part 1

Hi All! Today we’re going to see how MongoDB handles locks and how we can achieve Document-level locking. The default MongoDB storage engine, WiredTiger, uses optimistic concurrency control, or OCC. In a nutshell, it assumes that multiple transactions can frequently complete without interfering with each other. wikipedia This basically means we’re somewhat sure that nobody […]

Categories: .NET, MongoDB, Programming, Software Architecture

Event Sourcing on Azure – part 4: Integration events

Hi All! Welcome back for the fourth part of the Event Sourcing on Azure series. Today we’ll see how we can send Integration events every time something changes. Last time we saw how to validate the Commands and make sure our Aggregates receive the right data. Of course, this validation doesn’t save us from all […]

Categories: .NET, ASP.NET, Azure, Design Patterns, Microservices, Software Architecture

© 2021 David Guida

Theme by Anders NorenUp ↑