There are several well-known challenges with managing data in microservice architectures, including transaction management. The list is long:
- How can database operations ensure validity despite executing across multiple, isolated contexts?
- How can they still provide reliability and durability guarantees?
- How will issues like failures, partial executions, and race conditions be remediated?
In this talk, I’ll introduce the Saga pattern as an approach for handling database transactions that span multiple requests. I’ll demonstrate how this may be implemented using an event-driven tech stack, with a specific focus on Spring Statemachine.