Skip to content


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