Designing Data-Intensive Applications

Martin Kleppmann

Pages

616

Year

2017

Difficulty

Moderate

Themes

distributed systems, databases, scalability, reliability, data engineering

The book that every senior engineer has on their shelf. Martin Kleppmann explains the fundamental ideas behind databases, distributed systems, and data processing with a clarity that makes the complex feel inevitable.

Why Start Here

Designing Data-Intensive Applications (universally known as “DDIA”) is the most recommended technical book in software engineering for a reason: it teaches you how to think about systems rather than just how to build them. Kleppmann covers data models, storage engines, replication, partitioning, batch processing, stream processing, and the trade-offs that connect them all.

What makes the book exceptional is its depth without density. Kleppmann writes clearly, uses real-world examples, and never assumes you already know the answer. Each chapter builds on the previous one, and by the end you have a mental model for reasoning about any data system you will ever encounter. It is not a book about specific technologies. It is a book about the ideas that outlast any technology.

What to Expect

A long, thorough technical book divided into three parts: foundations, distributed data, and derived data. The prose is clear and the diagrams excellent. Each chapter can stand alone as a reference. Published by O’Reilly. The standard text for anyone who wants to understand how modern systems work.

What to Read Next

More from Just Start with System Design

Similar authors