Failing (and recovering) asynchronously: a saga
summary
Adapts the 1987 saga idea into concrete async recovery: each step pairs a forward action with a compensating undo so partial failures run compensations and leave no orphaned resources. Shows a Scala saga pattern for async undo implemented for reactive streams using a stream-based implementation with broadcast/zip sync and outlines a prototype library for Scala (no persistence); futures work too but are harder because external code can dereference and outrun rollbacks.
AI-written summary · about
chapters (8)
- 0:00Introduction
- 2:10Example
- 4:45The problem
- 10:16The solution
- 11:54The saga idea
- 14:35The primitives
- 19:41The pipe
- 24:47In practice
related talks
46mLost in transaction? Strategies to deal with (in-)consistency in distributed systems
17mSaga Pattern for Distributed Transactions
33mSagas in Erlang: Distributed Transactions Without Locks
55mTackling transactions in Microservices applications
47mSaga Pattern Made Easy
50mTransactional solutions for microservices
30mData Consistency Patterns in Cloud Native Applications
15m"Railways, States & Sagas: Pure Ruby for Wizards"
