EyebrarianPrize winnersGet the app

Books › Designing Data-Intensive Applications

Cover of Designing Data-Intensive Applications

Designing Data-Intensive Applications

The Big Ideas Behind Reliable, Scalable, and Maintainable Systems

1051 pages

A clarifying journey through the chaotic landscape of modern software architecture that replaces hype with deep, foundational understanding.

What it feels like

Reading this book feels like sitting down with a brilliant, patient mentor who finally explains how the digital world actually holds together. It moves at a steady, deliberate pace, asking you to pause and absorb its dense but beautifully articulated concepts. The mood is deeply intellectual yet entirely grounded in reality, stripping away the marketing hype of modern tech to reveal the fundamental trade-offs beneath. The prose is exceptionally clear, using brilliant analogies to make distributed systems and database internals feel accessible rather than intimidating. It is a profoundly clarifying experience, transforming the overwhelming noise of software buzzwords into a structured, navigable landscape. This is a must-read for engineers and architects craving a masterclass in building resilient, scalable systems.

Mood
  • intellectual
  • clarifying
  • grounded
  • illuminating
Tone
  • authoritative
  • pragmatic
  • accessible
  • demystifying
  • patient
Pace
steady
Themes
managing complexity · architectural trade-offs · the illusion of simplicity · building for resilience · systems thinking
The writing
Exceptionally clear, well-structured, and analogy-rich, translating dense academic concepts into practical engineering realities.
The arc
Moves from a state of being overwhelmed by technological buzzwords to a grounded sense of clarity and architectural confidence.
Who it's for
Software engineers, architects, and technical leaders who want to move beyond hype and deeply understand how distributed systems actually work.

About the book

Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?

In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications.

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 tools. Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity. Understand the distributed systems research upon which modern databases are built. Peek behind the scenes of major online services, and learn from their architectures

Description from Open Library.

Books like Designing Data-Intensive Applications

See why they match