OpenSleigh: tackling state persistence, part 1

Hi All! Here we go with another article about OpenSleigh. Today we’re going a bit deeper into the rabbit hole and see how it is dealing with state persistency. The last time we introduced the library, discussed a bit about what the Saga pattern is and what’s the general idea behind Orchestration and Choreography. Now. […]

Categories: Design Patterns, Microservices, OpenSleigh, Software Architecture

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

© 2021 David Guida

Theme by Anders NorenUp ↑