System Design
Learn to turn a vague problem into numbers, then the building blocks every large system is made of — caches, replicas, shards, queues, rate limiters and consensus — and the failure modes each one brings. Finish by designing four real systems end to end. Every building block also has its own short page in the Concepts library.
- 21 lessons
- 4 stages
- 66 concept notes
- includes SQL & Databases (optional)
Also part of Software Engineer, Backend with Go, Backend with Node.js and Full-Stack Developer — progress here counts there too.
Your progress
0 / 16
required steps
+ 0/6 optional
- 01
Foundations
Frame the problem, put numbers on it, and grow past one server.
- 02
Data at scale
Cache it, copy it, split it — and know what "consistent" still means.
- 04Caching strategiesWhere caches go, how they stay correct and how they fail.
- 05ReplicationLeaders, followers, lag, failover and quorums.
- 06Partitioning & shardingSplitting data across machines without creating hot spots.
- 07Consistency & CAPWhat "consistent" means, and what a partition forces you to give up.
- 08Choosing a datastoreRelational, key-value, document, wide-column, search and blobs.
- Sq
Step 09 · Roadmap · 13 lessons · optional
SQL & Databases
Indexes, transactions and isolation are where most data designs succeed or fail.
0/13
- 03
Communication & reliability
Move work asynchronously, protect services from overload, and agree across machines.
- 10Queues & event streamsAsync work, delivery guarantees, ordering and the outbox.
- 11Rate limitingToken buckets, sliding windows and limits across many servers.
- 12Designing for failureTimeouts, retries, circuit breakers, bulkheads and load shedding.
- 13IDs, clocks & consensusUnique IDs, event ordering, leader election, leases and Raft.
- 04
Case studies
Put the building blocks together on systems people actually run: four core designs, then five more for practice.
- 14Design a URL shortenerKey generation, redirects at 100k QPS, caching and analytics.
- 15Design a news feedFan-out on write or read, celebrities, ranking and caching.
- 16Design a chat systemWebSockets, ordering, delivery receipts, presence and push.
- 17Design a payment systemIdempotency, double-entry ledgers, PSPs and reconciliation.
- 18Design search autocomplete optionalTries with top-k, an offline pipeline, CDN caching and filtering.
- 19Design a notification system optionalChannels, preferences, priorities, retries and provider failover.
- 20Design a file sync service optionalChunking, deduplication, a metadata journal and conflicts.
- 21Design video streaming optionalTranscoding, adaptive bitrate, CDNs and view counting.
- 22Design a web crawler optionalThe URL frontier, politeness, duplicates and recrawl scheduling.
- You made it.