Fixing Distributed Systems Fail
summary
Six lines of checkout code call the database, Stripe, SendGrid and RabbitMQ inside one transaction and produce real failures: customers get charged but no order record, no email, or downstream systems see “order not found.” Fixes include using Stripe’s idempotency key or two‑step authorize/capture, compensating with Stripe refunds, moving publishes to an outbox pattern, using Stripe webhooks to trigger emails, and replacing inline calls with a process manager that orchestrates payments then choreographs notifications. With two weeks, the team implements refunds + ignoring email/RabbitMQ failures.
AI-written summary · about
chapters (6)
- 0:00Introduction and context
- 2:05The fragile transaction
- 5:23Analyzing potential failures
- 11:48Strategies for distributed systems
- 19:18Applying patterns to services
- 35:15Designing resilient architecture
related talks
51mSix Little Lines of Fail
45mDo Distributed Systems they said. It'll be fun they said.
23mDistributed Systems: Your Only Guarantee Is Inconsistency
42mFive Common Mistakes With Distributed Systems
51mComplex Event Flows in Distributed Systems
01h 01mLost in transaction Strategies to manage consistency in distributed systems
52mWhy today, more then ever you need Dependency Isolation in Distributed Systems
13mExplaining Distributed Systems Like I'm 5
