OpenSleigh

Yet another Saga management library for .NET Core.

Samples

Sample projects are available in the /samples/ folder of the repository. The required infrastructure for each sample can be spin up using docker-compose with the .yml configuration file provided in the sample’s folder.

  • Sample 1 is a simple .NET Console Application showing how to bootstrap OpenSleigh and use In-Memory persistence and transport.

  • Sample 2 is a more interesting scenario, with a Web API acting as message producer and a Console Application as subscriber. This example uses RabbitMQ and MongoDB. It also uses a custom naming policy for some messages, which allows greater flexibility with exchanges and queue generation.

  • Sample 3 is the same as Sample 2, but with SQL Server instead of MongoDB.

  • Sample 4 mimicks an order processing scenario, showing how to orchestrate multiple services. It uses RabbitMQ and SQL Server.

  • Sample 5 shows how to configure retry policies on a Saga.

  • Sample 6 shows how to use Azure Service Bus as Transport mechanism and how to automatically provision the infrastructure.

  • Sample 7 shows how to configure OpenSleigh to use compensating transactions.

  • Sample 8 shows how to send notifications to a Blazor client application from a Saga using SignalR.

  • Sample 9 same as sample 2 and 3, but with Kafka instead of RabbitMQ.