Reference designs · interactive diagrams

System design,
step by step.

Classic system design problems worked through in the order of an interview. Each design has an animated diagram: press play to follow one request through the system, and read what happens at every step and the trade-off behind it.

Framework

How each design is built

Every design follows the same six steps, the order that works best in a 45-minute interview: agree on the problem before drawing boxes, then spend the remaining time where the design is weakest.

  1. 1

    Requirements

    Agree on what the system must do and the few qualities that shape it: scale, latency, consistency.

  2. 2

    Core entities

    Name the main things the system stores and moves.

  3. 3

    API

    Define the contract with callers before drawing boxes.

  4. 4

    Data flow

    Walk one request through the system in a few steps.

  5. 5

    High-level design

    Draw the components that satisfy the API, and explain each choice and its cost.

  6. 6

    Deep dives

    Stress the design where it is weakest: scale, failure, consistency, edge cases.

These are generic reference designs written to explain trade-offs. They do not describe any company's production systems.