Designing Data-Intensive Applications
Oct 15, 2025
·
1 min read

The definitive reference on distributed data systems, covering everything from storage engines to stream processing with rigorous analysis of trade-offs and failure modes.
Martin Kleppmann
O'Reilly Media, 2017
ISBN 9781491903063
Who This Is For:
Staff+ engineers designing distributed systems, platform architects building data pipelines, SRE leads ensuring data reliability, backend engineers working with databases and streams.
Resources & Links
Kleppmann’s comprehensive guide teaches you to build data systems that actually work under pressure—focusing on fundamental principles over fleeting technology trends.
Who This Is For
Staff and principal engineers designing distributed data systems from scratch or at scale. Platform architects building event streaming pipelines and data integration layers. SRE leads responsible for data reliability and consistency guarantees. Backend engineers who need to deeply understand their databases, message queues, and stream processors beyond surface-level API usage.
Key Takeaways
- Data correctness is a set of explicitly defined contracts and guarantees, not an emergent property of tool selection—state your invariants upfront.
- Eventual consistency requires rigorous reasoning about causality, conflict resolution, and convergence semantics—it’s not as simple as “add a queue.”
- Schema evolution and backward/forward compatibility are first-class architectural concerns that must be designed in from day one, not retrofitted.
- Idempotency and exactly-once processing semantics require end-to-end system design; no single component provides these guarantees in isolation.
- Change data capture and event sourcing create audit trails and enable system healing capabilities that traditional CRUD architectures cannot match.