Welcome to the (state) machine
summary
Argues that complex, stateful collaborations should be modeled as distributed sagas not centralized process managers, showing a working .NET Core demo and using queues (RabbitMQ delayed delivery) for timeouts. Describes concrete flows: reservation -> payment authorized -> order created -> shipping, with compensating actions and a 48‑hour request timeout pattern to release authorizations. Claims this yields independent storage, independent deploy/scale, and clearer failure handling while trading off distributed state and the need for cross‑service monitoring.
AI-written summary · about
chapters (21)
- 0:00Intro
- 0:38When I was young
- 3:17The order doesnt matter
- 8:15A naive implementation
- 11:54A process manager
- 16:04A simple order manager
- 18:09A process manager like a punch card
- 19:05The big bowl of mud
- 21:21Single responsibility principle
- 23:01Domain experts
- 24:48Autonomy
- 28:04Sagas
- 28:43Recap
- 34:22Blackbox
- 40:19Compensation
- 45:46Timeouts
- 48:51Table schema
- 51:01Summary
- 52:41Pitfalls
- 54:08Main takeaways
- 55:51Orchestration
related talks
51mExploring Stateful Microservices in the Cloud Native World
34mProcesses, StateCharts and WorkFlows
51mBe proactive about state in a reactive system
51mDealing with eventual consistency
59mEffective Microservice Communication and Conversation Patterns
54mWhere we're going... we don't need batch jobs
28mArchitecture Patterns To Enable Stateful Communication Over Stateless Serverless Apis
57mThe State of State
