Orchestration Sagas

December 19, 2025

🏠

Recap

This is a small continuation of my other work around sagas, in which I first attempted to implement a orchestration based saga, but resorted to a choreography based saga. I outlined all of the patterns and techniques revolving around robust microservice communication, and some of the challenges I had along the way in another post. Although the implementation worked, I was not satisfied with both the code on an organizational level, and the choreography based approach. For this implementation, I've decided to utilize all of the same robustness techniques, although created a more modular, clean implementation of an orchestration based saga.

General Patterns, High Level Overview

This post will not go into great detail about design patterns used, although I will give a brief overview for clarity. The main patterns used to communicate between microservices in this are: saga, idempotent consumer, and transactional outbox. I also use some simple OOP patterns, such as the factory and builder.

Infrastructure

This project depends on a couple of different infrastructure technologies.
Repo Link