Scylladb

Free O'Reilly download, courtesy of ScyllaDB

Designing Data Intensive Applications

By Martin Kleppmann and Chris Riccomini


Coming Soon – Publication ETA mid-February 2026

In the significantly revised second edition of this must-read resource, Martin Kleppmann and Chris Riccomini help you navigate the options and tradeoffs for processing and storing data for data-intensive applications. Whether you're exploring how to design data intensive applications from the ground up or looking to optimize an existing real-time system, this guide will help you make the right choices for your application.

  • Peer under the hood of the systems you already use, and learn how to use and operate them more effectively
  • Make informed decisions by identifying the strengths and weaknesses of different approaches and technologies
  • Understand the distributed systems research upon which modern databases are built
  • Go behind the scenes of major online services and learn from their architectures
oreilly-designing-data-intensive-book-2

Get your free digital copy

oreilly-book-lp-layout

This ~150 page book excerpt contains 3 new/revised chapters from the 2nd edition: Trade-offs in Data Systems Architecture, Defining Nonfunctional Requirements, and The Trouble with Distributed Systems.

Trade-offs in Data Systems Architecture: Considerations related to operational vs. analytical systems; cloud services vs. self-hosted systems; and single-node systems vs. distributed systems.

Defining Nonfunctional Requirements: Core principles underlying fast, reliable, scalable systems: how to measure performance, model load and capacity, handle failures, and manage complexity.

The Trouble with Distributed Systems: The wide range of things that can go wrong in distributed systems (network issues, clocks & timing issues) and the notions of knowledge and truth in distributed systems.

Hear what readers are saying about Designing Data-Intensive Applications

Designing Data-Intensive Applications is one of the greatest reference books. When I was working on databases at Google I regularly recommended it to coworkers who needed more background on particular distributed systems topics. It will keep being a go-to book as long as I work in this field.”
Jaana Dogan, Principal Engineer at Google

This book is awesome. It bridges the huge gap between distributed systems theory and practical engineering. I wish it had existed a decade ago, so I could have read it then and saved myself all the mistakes along the way.”
Jay Kreps, creator of Apache Kafka and CEO at Confluent

This book should be required reading for software engineers. The explosion of data and its increased importance to the applications we build has created a new set of complex challenges. Designing Data-Intensive Applications is a rare resource that bridges 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

About the Authors