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.
Designs
6 problems, end to end
Distributed rate limiter
Cap how many requests each client can make, across a fleet of gateways, without adding noticeable latency or becoming a single point of failure.
8 steps · 3 deep dives →MediumNotification system
Send push, email and SMS on behalf of every product team: urgent messages in seconds, campaigns at their own pace, user preferences respected and no visible duplicates.
8 steps · 3 deep dives →HardPayment webhook processor
Turn payment provider webhooks into correct order and ledger updates: never lose an event, never apply one twice, and survive events that arrive late, out of order or not at all.
9 steps · 3 deep dives →HardBooking system for stays
Let guests search and book stays without ever selling the same night twice: fast, slightly stale search; a strictly consistent claim at the moment of booking; and payments, holds and outside calendars that never leave the inventory wrong.
10 steps · 3 deep dives →MediumDistributed cache
Put a shared, in-memory cache in front of a database so reads take a millisecond instead of tens, without serving data that stays wrong, melting the database on a miss storm or losing everything when a node dies.
9 steps · 3 deep dives →MediumDistributed job scheduler
Run millions of one-off and recurring jobs at the right time: never lose one, never fire the same run twice by accident, retry what fails, and keep working when machines die.
9 steps · 3 deep dives →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
Requirements
Agree on what the system must do and the few qualities that shape it: scale, latency, consistency.
- 2
Core entities
Name the main things the system stores and moves.
- 3
API
Define the contract with callers before drawing boxes.
- 4
Data flow
Walk one request through the system in a few steps.
- 5
High-level design
Draw the components that satisfy the API, and explain each choice and its cost.
- 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.