Reading list for anyone designing practical distributed systems.
Developing a distributed system
- 10 Lessons from 10 Years of Amazon Web Services
- Fallacies of Distributed Computing Explained
- The Log: What every software engineer should know about real-time data’s unifying abstraction
- Turning the database inside-out with Apache Samza
- What we talk about when we talk about distributed systems
- Dynamo: Amazon’s Highly Available Key-value Store
Time in a distributed system
- Time, Clocks and the Ordering of Events in a Distributed System
- The Bloom Clock
- Falsehoods programmers believe about time
- More falsehoods programmers believe about time; “wisdom of the crowd” edition
Understanding a distributed system
The observability and controllability of a system are mathematical duals - Observability on wikipedia
- “Nines don’t matter if users aren’t happy”
- A Brief Tour of FLP Impossibility
- Scuba: Diving into Data at Facebook
- Observability — A 3-Year Retrospective
- Site Reliability Engineering