
Book Overflow Time is an Illusion - Designing Data-Intensive Applications by Martin Kleppman
Feb 2, 2026
They dig into distributed systems problems caused by unreliable clocks and how Google Spanner orders events. They unpack consensus, Byzantine faults, and trade-offs between safety and liveness. They explain linearizability limits and different replication models. They trace batch processing history from MapReduce to streaming and discuss resilient pipeline design like immutability and idempotence.
AI Snips
Chapters
Books
Transcript
Episode notes
Clocks Lie — Design For Uncertainty
- Clock timestamps are unreliable across machines and even within a single VM due to pauses, drift, and NTP adjustments.
- Systems must separate 'time of day' from monotonic duration and design for uncertainty rather than assume perfect clocks.
Spanner Shows Global Time Is Practical — At Cost
- Google Spanner uses specialized hardware and uncertainty intervals to reason about event ordering despite imperfect clocks.
- Strong global ordering is possible but requires massive infrastructure and probabilistic guarantees.
Use Fencing Tokens For Safe Locks
- Use fencing tokens when granting locks so storage can reject stale clients after pauses or migrations.
- Increment and verify a token with each write to prevent resumed processes from corrupting state.













