Life Beyond Distributed Transactions: An Apostate's Implementation
summary
Implementation demonstrates replacing distributed two‑phase commit with outbox/inbox per document in Azure Cosmos DB, plus a dispatcher, unit‑of‑work, change‑feed observer and retry queue; code runs and the demo shows orders completed, cancelled and rejected with idempotent handlers. It treats NoSQL transactional boundary as a single document (SQL gets a global outbox), uses Cosmos DB change feed and can integrate with brokers like RabbitMQ or Azure Service Bus, and coordinates failures with a saga for compensating actions. Code is on GitHub.
AI-written summary · about
chapters (18)
- 0:00Introduction
- 3:11ToPC
- 6:40Summary
- 7:42Example
- 10:03The Idea
- 10:52The Implementation
- 18:42Retry
- 22:08Dispatching
- 25:39Failsafe Process
- 31:20Demo
- 38:24Stock Request Denied
- 40:03Stock Request Denied Demo
- 43:53Stock Request Denied Cancel
- 44:33Stock Request Rejected Demo
- 47:07Microcircuits
- 48:44Sequel
- 49:31Transactional Boundaries
- 50:37Lessons
related talks
52mLife Beyond Distributed Transactions: An Apostate's Implementation
01h 02mLife Beyond Distributed Transactions: An Apostate's Implementation
01h 00mLife Beyond Distributed Transactions: An Apostate's Implementation
01h 02mConsistency and Agreements in Distributed Systems
53mEffective Microservice Communication and Conversation Patterns
01h 02mAt Least Once
39mBuilding Event-Driven Systems at Scale with Cosmos DB
18mNoSQL, YesCosmos: Build that Eventually Consistent Application using Azure Cosmos DB
