System Design
System design questions ask you to design something big, out loud. Here each design grows like a real system: a simple v1 for 100 users, then v2 and v3, each forced by a real problem.
Want to try it now? Build a design by drag and drop and get instant feedback.
How to use this roadmap
Section titled “How to use this roadmap”- Topics are in teaching order. “Builds on” links show what to know first, even from other tracks.
- New? Start at the top. Know some already? Jump to a level, or skip any topic you can already explain.
- Short on time? Tick “Asked often only” to see what interviews ask most.
- Your progress is saved in this browser.
Best after: SQL. Do SQL foundations first. Design answers keep coming back to databases.
34 topics in 4 levels, about 12 h of reading. With practice, plan 2 to 3 times that. 11 of 34 topics have lessons so far.
34 practice problems from this track’s lessons, in one list.
Foundations
Know this level already? Check what you know: 11 questions, about 6 minutes. Topics you get right are marked Known.
- 1. Client–server, HTTP and HTTPSNot started
How a browser asks a server for something, and how HTTPS keeps it private.
Start15 min read, about 50 min with practice
- 2. DNSNot started
How a name like example.com turns into a server's address.
Start10 min read, about 40 min with practice
- 3. REST vs GraphQL vs gRPCNot started
Three ways for programs to talk to each other, and when each fits.
Start20 min read, about 1 h with practiceBuilds on: Client–server, HTTP and HTTPS
- 4. Latency numbers worth knowingNot started
Rough speeds of memory, disk and network, for quick estimates.
Start10 min read, about 40 min with practice
- 5. Vertical vs horizontal scalingAsked oftenNot started
A bigger server, or more servers?
Start15 min read, about 1 h with practice
- 6. Load balancers: L4 vs L7 and algorithmsAsked oftenNot started
Spread traffic across servers, and the ways to pick which server gets a request.
Start20 min read, about 1 h with practiceBuilds on: Vertical vs horizontal scaling
- 7. Caching: cache-aside, write-through, write-back, eviction, TTLAsked oftenNot started
Keep popular data close and fast, and stop it going stale.
Start25 min read, about 1 h 15 min with practice
- 8. SQL vs NoSQLAsked oftenNot started
Tables or documents? How to choose a database for the job.
Start20 min read, about 1 h with practiceBuilds on: Tables, rows and keys (SQL)
- 9. CDNsNot started
Copies of files on servers near users, so pages load fast anywhere.
Start10 min read, about 40 min with practiceBuilds on: Caching: cache-aside, write-through, write-back, eviction, TTL
- 10. Back-of-the-envelope estimatesAsked oftenNot started
Rough maths for users, storage and traffic, done out loud.
Start20 min read, about 1 h with practiceBuilds on: Latency numbers worth knowing
Core
- 1. ReplicationAsked oftenComing soon
Keep copies of data on several servers, for speed and safety.
20 min read
- 2. Partitioning and consistent hashingAsked oftenComing soon
Split data across servers, and add servers without moving everything.
25 min readBuilds on: Hashing and hash maps (DSA)
- 3. CAP and PACELCAsked oftenComing soon
When the network breaks, choose between always-correct answers and staying up.
15 min readBuilds on: Replication
- 4. Consistency modelsComing soon
How fresh is the data you read? From "always the latest" to "eventually".
20 min readBuilds on: CAP and PACELC
- 5. Queues and pub/subAsked oftenComing soon
Hand work to a queue so users don't wait, and send one event to many listeners.
20 min read
- 6. Rate-limiting algorithmsAsked oftenComing soon
Cap how many requests each user can make, fairly.
20 min read
- 7. API design: pagination, idempotency, versioningAsked oftenComing soon
Design endpoints that page through big results and are safe to retry.
20 min readBuilds on: REST vs GraphQL vs gRPC
- 8. Authentication and authorization: sessions, JWT, OAuth2, OIDCComing soon
Who are you, and what may you do? Sessions, tokens and "sign in with Google".
25 min readBuilds on: Sessions, JWT and OAuth2 (Frameworks)
- 9. Object storageComing soon
Store big files like photos and videos cheaply, outside the database.
10 min read
- 10. Search and inverted indexesComing soon
Find records by their words fast, the way search engines do.
20 min read
- 11. Unique ID generationComing soon
Make IDs that never clash, even across many servers.
15 min read
- 12. ProxiesComing soon
Middlemen between clients and servers, and what each kind is for.
10 min read
Advanced
- 1. Distributed transactions: two-phase commit and sagasComing soon
Keep data correct when one action touches several services.
25 min readBuilds on: Transactions, ACID and isolation levels (SQL)
- 2. Consensus (Raft), leader election and distributed locksComing soon
How servers agree on one leader or one value, even when some of them fail.
25 min read
- 3. Event sourcing and CQRSComing soon
Store every change as an event, and keep reads and writes in separate models.
20 min readBuilds on: Queues and pub/sub
- 4. Batch vs stream processingComing soon
Process data in big scheduled chunks, or as soon as it arrives.
20 min read
- 5. Observability: logs, metrics, tracesComing soon
See what a live system is doing, and find out why it is slow.
20 min read
- 6. Resilience: timeouts, retries with jitter, circuit breakers, bulkheadsComing soon
Stop one slow service from taking everything else down with it.
20 min read
- 7. Monolith vs microservicesComing soon
One app or many small ones, and the real costs of splitting.
15 min read
- 8. Multi-region and disaster recoveryComing soon
Keep running when a whole data centre goes down.
20 min readBuilds on: Replication
Interview-ready
- 1. The system design interview frameworkAsked oftenComing soon
A step-by-step plan for the 45-minute design round.
20 min readBuilds on: The system-design-round method and its time budget (Interview Playbook)
- 2. Case studies: URL shortener, rate limiter, chat, news feed, video, ride-hailing, payments and moreAsked oftenNot started
Classic designs built from v1 to v3, each step forced by a real problem.
Start90 min read, about 2 h with practiceBuilds on: Back-of-the-envelope estimates · The system design interview framework
- 3. Low-level design: SOLID and the patterns that matterComing soon
Design clean classes for a small system: the other kind of design round.
25 min readBuilds on: Classes: inheritance, MRO, super() and dunder methods (Python)
- 4. LLD problems in Python: parking lot, elevator, vending machine, expense splitter and moreComing soon
Classic class-design questions, solved in Python.
45 min readBuilds on: Low-level design: SOLID and the patterns that matter