Designing Data-Intensive Applications
Author:Martin Kleppmann
Edition:1st Edition
Exploring the foundations of modern data systems, this text examines how applications manage large-scale data with reliability and efficiency. It connects storage, distributed architectures, and consistency models with processing techniques such as batch and stream systems, emphasizing design trade-offs in building scalable and maintainable systems.

Chapters
- Chapter 1: Reliable, Scalable & Maintainable Applications→
- Chapter 2: Data Models & Query Languages→
- Chapter 3: Storage & Retrieval Systems→
- Chapter 4: Encoding, Schemas & Data Evolution→
- Chapter 5: Replication in Distributed Data Systems→
- Chapter 6: Partitioning & Distributed Data Layouts→
- Chapter 7: Transactions & ACID Guarantees→
- Chapter 8: The Trouble with Distributed Systems→
- Chapter 9: Consistency Models & Consensus Algorithms→
- Chapter 10: Batch Processing & Data Pipelines→
- Chapter 11: Stream Processing & Real-Time Dataflows→
- Chapter 12: The Future of Data Systems→
Related Books
- Design Patterns: Elements of Reusable Object-Oriented SoftwareErich Gamma, Richard Helm, Ralph Johnson, John Vlissides · 1st Edition→
- Software Architecture in PracticeLen Bass, Paul Clements, Rick Kazman · 4th Edition→
- System Design Interview - An Insider's Guide (Volume 1)Alex Xu · 2nd Edition→
- System Design Interview - An Insider's Guide (Volume 2)Alex Xu · 2nd Edition→
- Computer Networking: A Top Down ApproachJames Kurose · 8th Edition→
- Database Internals: A Deep Dive into How Distributed Data Systems WorkAlex Petrov · 1st Edition→