Skip to content

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.

  • 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. 1. Client–server, HTTP and HTTPSNot started

    How a browser asks a server for something, and how HTTPS keeps it private.

    Start

    15 min read, about 50 min with practice

  2. 2. DNSNot started

    How a name like example.com turns into a server's address.

    Start

    10 min read, about 40 min with practice

  3. 3. REST vs GraphQL vs gRPCNot started

    Three ways for programs to talk to each other, and when each fits.

    Start

    20 min read, about 1 h with practiceBuilds on: Client–server, HTTP and HTTPS

  4. 4. Latency numbers worth knowingNot started

    Rough speeds of memory, disk and network, for quick estimates.

    Start

    10 min read, about 40 min with practice

  5. 5. Vertical vs horizontal scalingAsked oftenNot started

    A bigger server, or more servers?

    Start

    15 min read, about 1 h with practice

  6. 6. Load balancers: L4 vs L7 and algorithmsAsked oftenNot started

    Spread traffic across servers, and the ways to pick which server gets a request.

    Start

    20 min read, about 1 h with practiceBuilds on: Vertical vs horizontal scaling

  7. 7. Caching: cache-aside, write-through, write-back, eviction, TTLAsked oftenNot started

    Keep popular data close and fast, and stop it going stale.

    Start

    25 min read, about 1 h 15 min with practice

  8. 8. SQL vs NoSQLAsked oftenNot started

    Tables or documents? How to choose a database for the job.

    Start

    20 min read, about 1 h with practiceBuilds on: Tables, rows and keys (SQL)

  9. 9. CDNsNot started

    Copies of files on servers near users, so pages load fast anywhere.

    Start

    10 min read, about 40 min with practiceBuilds on: Caching: cache-aside, write-through, write-back, eviction, TTL

  10. 10. Back-of-the-envelope estimatesAsked oftenNot started

    Rough maths for users, storage and traffic, done out loud.

    Start

    20 min read, about 1 h with practiceBuilds on: Latency numbers worth knowing

Core

  1. 1. ReplicationAsked oftenComing soon

    Keep copies of data on several servers, for speed and safety.

    20 min read

  2. 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. 3. CAP and PACELCAsked oftenComing soon

    When the network breaks, choose between always-correct answers and staying up.

    15 min readBuilds on: Replication

  4. 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. 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. 6. Rate-limiting algorithmsAsked oftenComing soon

    Cap how many requests each user can make, fairly.

    20 min read

  7. 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. 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. 9. Object storageComing soon

    Store big files like photos and videos cheaply, outside the database.

    10 min read

  10. 11. Unique ID generationComing soon

    Make IDs that never clash, even across many servers.

    15 min read

  11. 12. ProxiesComing soon

    Middlemen between clients and servers, and what each kind is for.

    10 min read

Advanced

  1. 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. 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. 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. 4. Batch vs stream processingComing soon

    Process data in big scheduled chunks, or as soon as it arrives.

    20 min read

  5. 5. Observability: logs, metrics, tracesComing soon

    See what a live system is doing, and find out why it is slow.

    20 min read

  6. 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. 7. Monolith vs microservicesComing soon

    One app or many small ones, and the real costs of splitting.

    15 min read

  8. 8. Multi-region and disaster recoveryComing soon

    Keep running when a whole data centre goes down.

    20 min readBuilds on: Replication

Interview-ready

  1. 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. 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.

    Start

    90 min read, about 2 h with practiceBuilds on: Back-of-the-envelope estimates · The system design interview framework

  3. 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. 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