Life Beyond Distributed Transactions: An Apostate's Implementation
summary
Argues distributed transactions are impractical in the cloud and implements Pat Helland’s idea by making the transactional unit a single-document transactional boundary and embedding an outbox/inbox per entity. Uses Azure Cosmos DB for storage, RabbitMQ for messaging, a dispatcher, a unit-of-work identity map, and a Cosmos change feed to enqueue retries. Demonstrates idempotent handlers that check message IDs, a 15‑second retry window for manufacturing SLAs, and working sample code on GitHub.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 5:26Distributed Transactions
- 5:54Two Phase Commit Protocol
- 11:46Transactions within a single resource
- 16:06Pat Helland
- 17:04Transactional Boundary
- 21:31Code Example
- 24:09Dispatch
- 25:51Order Request
- 31:57Indirection
- 33:31Retry
- 43:06Unit of Work
- 47:22Triggers
- 48:54Demo
- 57:25Coordinate Transactions
- 59:00Microservices
related talks
53mLife Beyond Distributed Transactions: An Apostate's Implementation
01h 00mLife Beyond Distributed Transactions: An Apostate's Implementation
52mLife Beyond Distributed Transactions: An Apostate's Implementation
01h 02mConsistency and Agreements in Distributed Systems
53mEffective Microservice Communication and Conversation Patterns
01h 02mAt Least Once
46mLost in transaction? Strategies to deal with (in-)consistency in distributed systems
31mLost in Transaction?
