Reliability Nirvana
summary
Argues that switching core interactions to an event bus yields automatic recovery and far smaller failure domains; demo builds an orders and notifications system using RabbitMQ (~20k msg/s) for routing, etcd for durable state and deduplication, S3 for long-term event storage, and plumber/statsd+graphite for testing and metrics. Shows idempotency via a local cache flushed to etcd so crashed services restart and catch up without replay bugs; the prototype runs, skips duplicate events, and simplifies dependencies compared with point-to-point RPC.
AI-written summary · about
chapters (21)
- 0:00Introduction
- 3:14What are we trying to solve
- 5:07Event Driven
- 11:59Event Storage
- 13:47Improving Reliability
- 17:30Code Overview
- 21:32Demo
- 23:47Code
- 24:02DockerCompose
- 26:14Setup dependencies
- 27:25ConsumerFunc
- 28:33ProcessOrder
- 31:08Write an Event
- 32:59Automatic Recovery
- 34:30State
- 41:14Libraries
- 45:38Reality
- 48:13Go
- 50:50Who Should Try Event Driven
- 52:22Who Should Avoid Event Driven
- 54:32Conclusion
related talks
45mDo Distributed Systems they said. It'll be fun they said.
55mGoing Resilient
56mFrom Unreliable to Resilient: Mastering Distributed Systems
54mKeynote: Bringing a Ferrari to a Horse Race
32mEvent-Driven Infrastructure: Autonomous Operation and Unreliable Networks
36mDRb vs. RabbitMQ Showdown
41mIdioms for building fault-tolerant applications with Elixir
54mReacting to an Event-Driven World
