Course
System Design Lab
The substrate under the designs — data, distribution, and the tradeoffs you get grilled on. Companion to the chapter decks.
0%
Drills →
· cards due · spaced repetition over every lesson
Glossary →
117 terms, searchable with Ctrl+K
0 Foundations
The vocabulary. Brisk — you know most of this already.
Latency Numbers & the Estimation Reflex
Turning a vague product description into servers, gigabytes, and gigabits
18 min
Networking for System Design
DNS, handshakes, HTTP versions, and why the first byte takes so long
17 min
Load Balancing
L4 vs L7, the algorithms that matter, and how health checks cause outages
16 min
Caching
Where to put it, how to invalidate it, and the four ways it takes you down
20 min
CDN & the Edge
Moving bytes closer to users, and the cache key that decides whether it works
15 min
Availability Math
Nines, serial dependencies, and why redundancy usually disappoints
15 min
1 Data
Storage engines, transactions, replication, partitioning.
Storage Engines — B-trees vs LSM-trees
Why two databases with the same API differ by 100× on writes
19 min
Indexing
Why you added an index and the query got no faster
18 min
Transactions & Isolation Levels
Dirty reads, write skew, and the anomaly that snapshot isolation won't save you from
20 min
Replication
One leader, many leaders, or none — and what each one costs you
18 min
Partitioning & Consistent Hashing
Splitting data across machines without reshuffling the world every time you add one
20 min
Choosing a Datastore
Access patterns first, database second — and why the answer is usually Postgres
18 min
2 Distributed Core
Clocks, CAP, consistency, consensus. The advanced spine.
Failure, Timeouts & Partial Failure
Why you can never tell a dead server from a slow one, and what follows from that
18 min
Clocks & Ordering
Ordering events without a global clock — Lamport, vectors, HLC, TrueTime
18 min
The Consistency Spectrum
Linearizable, sequential, causal, eventual — and which one you can actually afford
18 min
CAP, Properly — and PACELC
Why "we chose AP" is not an answer, and what the theorem actually forbids
17 min
Quorums, Repair & Anti-Entropy
R + W > N, what it actually buys, and the three ways it quietly stops being true
19 min
Consensus & Raft
How a cluster agrees on one ordered log, and why you should use as little of it as possible
21 min
Locks, Leases & Leader Election
Why your distributed lock doesn't lock, and the one mechanism that fixes it
17 min
Idempotency & the Exactly-Once Myth
Exactly-once delivery is impossible; exactly-once effect is a design choice
18 min
3 Patterns & Assembly
Queues, events, resilience, multi-region, observability.
Queues, Logs & Backpressure
A queue forgets on read, a log forgets on a clock — everything else follows from that
19 min
Event-Driven Architecture
Events, commands, CQRS, event sourcing and sagas — and which of them you actually need
19 min
API Design at Scale
Pagination, versions and error shape are where public APIs quietly fall over
18 min
Resilience Patterns
Breakers, bulkheads, shedding and degradation — containing a failure already underway
18 min
Search & Inverted Indexes
Why the index is inverted, why BM25 replaced TF-IDF, and why page 1000 is expensive
18 min
Stream Processing
Event time, watermarks, and deciding when an unbounded computation is allowed to answer
18 min
Multi-Region & Cell-Based Architecture
Three different reasons to leave one region, and why the modern answer is cells rather than continents
19 min
Observability & SLOs
Three signals, burn-rate alerting, and why the dashboards stay green during the outage
18 min
Multi-Tenancy
Isolation models, the noisy neighbour, and the operations nobody plans for
18 min
4 Case Studies
What the chapter decks do not already cover.
Case Study — Discord's Message Store
How a two-field partition key holds trillions of messages, and why the database underneath it was replaced
16 min
Case Study — Netflix Open Connect
A CDN you give away, a cache that is never cold, and failure injected on purpose
16 min
Case Study — Stripe's API
Idempotency keys, rolling versions, and what it costs to promise you will never break
16 min
Case Study — Dynamo & DynamoDB
How one shopping-cart requirement produced a technique catalogue, and one idea that did not survive
17 min
Case Study — Google Spanner
Buying global strict serializability with atomic clocks and deliberate waiting
17 min
5 Interview Track
The framework, timed mocks, rubrics, tradeoff drills.