Designing Data-Intensive Applications, 2nd Edition
Martin Kleppmann and Chris Riccomini
O’Reilly Media,
March 2026.
The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Data is at the center of many challenges in system design today. Difficult issues such as
scalability, consistency, reliability, efficiency, and maintainability need to be resolved. In
addition, there’s an overwhelming variety of systems, including relational databases, NoSQL
datastores, data warehouses, and data lakes. There are cloud services, on-premises services, and
embedded databases. What are the right choices for your application? How do you make sense of all
these buzzwords?
In this second edition, authors Martin Kleppmann and Chris Riccomini build on the foundation laid in
the acclaimed first edition, integrating new technologies and emerging trends. You’ll be guided
through the maze of decisions and trade-offs involved in building a modern data system, learn how to
choose the right tools for your needs, and understand the fundamentals of distributed systems.
- Peer under the hood of the systems you already use, and learn to use them more effectively
- Make informed decisions by identifying the strengths and weaknesses of different tools
- Learn how major cloud services are designed for scalability, fault tolerance, and consistency
- Understand the core principles upon which modern databases are built
670 pages. ISBN 9781098119065 (paperback), 9781098119027 (ebook).
Available in all good bookshops; see dataintensive.net for links.
Praise for DDIA
“For the last decade, this has been the best book for understanding distributed systems, and the
second edition makes it even better. It bridges the huge gap between distributed systems theory
and practical engineering. I wish it had existed earlier so I could have saved myself a lot of
mistakes.”
— Jay Kreps, creator of Apache Kafka and co-founder of Confluent
“This book should be required reading for software engineers. Designing Data-Intensive
Applications is a rare resource that connects theory and practice to help developers make smart
decisions as they design and implement data infrastructure and systems.”
— Kevin Scott, Chief Technology Officer at Microsoft