System Design book cover

Your technical library

System Design

11 modules · 76 topics

About this book
Concepts · System Design

System Design

This course teaches how the systems behind a modern product actually work — databases, caches, replicas, queues, consensus services — from the hardware facts up, so that you can design one, debug one at 3 a.m., and argue a trade-off in a design review with numbers rather than adjectives. It is written for a working software engineer who ships code every day and wants the theory underneath it: no prior distributed-systems background is assumed, and nothing is used before the topic that teaches it.

It builds on the DBMS course, which teaches everything a single database machine does — storage engines, indexes, transactions, isolation, MVCC and the write-ahead log — and links back to it rather than repeating it.

It is built as one chain of problems. Foundations gives you the laws that decide whether a system is fast — latency, queueing, tails, scaling. Data models and encoding shows how data is shaped and survives a deploy. The serving path puts load balancers, caches and rate limits in front of it all.

Then the data leaves one machine. Replication keeps copies — and meets failover, lag, conflicting writes and why no clock can order them. Consistency models then name precisely what a reader may see once there is more than one copy. Partitioning splits data that no longer fits on one machine and places each key, leaderless replication then removes the leader entirely. Coordination starts from a transaction that spans machines — two-phase commit, sagas and the outbox — and answers the question all of those leave open — how machines decide one thing, once, for certain — with leases, consensus and Raft. Queues, batch and streams hand work off to be done later and keep derived copies correct.

The last two modules turn the understanding into practice: the interview method is a disciplined way to work a design problem, and the design catalogue works classic systems — a rate limiter, a key-value store, a chat service, a news feed — using everything before. Along the way each topic says what it inherits, what it leaves open, who invented the idea and when, and how it shows up in decisions engineers make.

76 topics across 11 modules, in dependency order.

Work a module top to bottom. Topics are ordered so each one only needs what came before it: every topic states what it assumes, and nothing is used before the topic that derives it.

Answer the “Check yourself” questions before opening them. Recalling an answer is what makes it stick; re-reading is not.

Mark a topic complete when you can explain it without the page. The public course shares progress through D1, so your completion state is available across devices without a login.

Topics still being written are labelled. They are excluded from progress, so the count reflects what is actually finished.

Course map

Read at your own pace. Each topic is one continuous page; mark it done as you finish.

Start with 01.1 · Latency numbers & the memory hierarchyReview what you have finished