System Design Road

A system design course

Learn system design from one server up.

Grow one app, Chirp, from a laptop to fifty million users. Every lesson starts with something that broke, and works out why, with real numbers and diagrams you can play with.

Start lesson 1.1 Try the simulation 37 lessons ready · Parts 1–8 complete
priya@mumbai ~

        
Chirp’s growth1K → 50M users

One path, in order

Each lesson builds only on the ones before it. Nothing assumes a topic you haven't reached yet.

Decisions with consequences

Each part ends in the simulation. Choices you make early come back when Chirp grows.

All the way down

Real numbers, the edge cases, how it fails, and what interviewers ask next.

All lessons

  1. 1K users

    Part 1One server, one database

    Ends with Stage 0: MVP

    1. 1.1What happens when you open an app
    2. 1.2Latency numbers every engineer should know
    3. 1.3Back-of-the-envelope estimation
    4. 1.4Inside a database
    5. 1.5Designing APIs
  2. 100K users

    Part 2More users than one server can handle

    Ends with Stage 1: Growth

    1. 2.1Scaling up vs scaling out
    2. 2.2Load balancers
    3. 2.3Object storage and CDNs
    4. 2.4Caching
    5. 2.5Replication
  3. 2M users

    Part 3Choosing how to store data

    Ends with Stage 2: New features

    1. 3.1Data models and access patterns
    2. 3.2Storage engines: B-trees vs LSM-trees
    3. 3.3Denormalization and its costs
    4. 3.4Search indexes
  4. 20M users

    Part 4Doing work in the background

    Ends with Stage 3: The celebrity

    1. 4.1Message queues and logs
    2. 4.2The outbox pattern
    3. 4.3Unique IDs at scale
    4. 4.4Feed fan-out
    5. 4.5Counters, likes, and hot keys
  5. 50M users

    Part 5Splitting data across machines

    Ends with Stage 4: Global

    1. 5.1Partitioning
    2. 5.2Rebalancing and consistent hashing
    3. 5.3Consistency models
    4. 5.4CAP and PACELC
    5. 5.5Going multi-region
  6. 50M users, every day

    Part 6Keeping it running

    Ends with Epilogue: Incident day

    1. 6.1Timeouts, retries, circuit breakers
    2. 6.2Tail latency
    3. 6.3Rate limiting
    4. 6.4Observability
    5. 6.5Leader election and consensus
  7. New apps

    Part 7New problems

    Ends with Chat, ride-sharing, payments, video

    1. 7.1Chat app
    2. 7.2Ride-sharing
    3. 7.3Payments
    4. 7.4Video platform
  8. After the course

    Part 8Interview playbook

    Ends with Practice

    1. 8.1A framework for the 45-minute interview
    2. 8.2Estimation under pressure
    3. 8.3Common follow-up questions
    4. 8.4Practice prompts