designing data-intensive applications, visualized

The hard part isn't the code. It's the data.

Martin Kleppmann's book explains the machinery under every modern app: storage engines, replication, partitioning, transactions, consensus, batch and stream processing. It explains each by its trade-offs, not by vendor. Each of the twelve chapters here is a page of small working systems you can poke at. Write keys into an LSM-tree, kill a leader, let a clock drift, partition the network, and watch what each design does.

One application, many data systems

A typical app stitches together a database, replicas, caches, a search index, an event log and stream and batch processors. The book is about how each one works and how to keep them consistent with each other.

Clientbrowser / mobileApplicationstateless servicesPrimary databasesystem of recordReplicasfollowers, other regionsCachememcached / redisEvent logkafka-style, partitionedSearch indexelasticsearchStream processorflink / kafka streamsBatch jobsmapreduce / sparkData warehousecolumn store
Event log

A totally ordered, replayable log is the backbone of data integration: change data capture puts every write on it, and every derived system consumes the same sequence, in the same order.

Chapters

Hover or tap any box. Highlighted arrows show where its data comes from and where it goes.

the three concerns
Reliability

The system keeps working correctly when hardware, software or people fail. Faults are inevitable, so the goal is to stop them turning into failures.

the three concerns
Scalability

As load grows there are reasonable ways to cope. Describe the load with numbers, measure performance with percentiles, then pick an architecture.

the three concerns
Maintainability

Many different people can work on the system productively for years. That takes operability, simplicity and evolvability.

I · Foundations of data systems

What a single machine does with your data: how it's modeled, laid out on disk, indexed and encoded.

II · Distributed data

What breaks when data spans machines: replicas disagree, partitions skew, clocks lie, and nodes must agree anyway.

III · Derived data

Systems of record vs. derived views: batch and stream processing, and building apps as dataflow.

13 · reference
Glossary: 236 concepts, searchable →

Every term from every chapter, in plain language, linked to its visualization.

This is an independent study aid, not affiliated with the author or publisher. Explanations are paraphrased. Read the book (O'Reilly, 2017) for the full argument, the references, and the wonderful maps that open each chapter.