System design track

Boxes and arrows, but they move.

Watch requests travel, caches miss and queues back up. Then design it yourself and defend every box in the interview.

A request's journeyA request travels from the browser through the CDN and load balancer to a service, which reads Redis and falls back to Postgres on a miss.BrowserCDNLoad balancerService ×3RedisPostgresQueue

New here? Follow this route

  1. 1Learn the wordsAbout 20 min18 one-minute ideas.
  2. 2Walk the HLD pathAbout 5 hours10 steps, each with a quiz.
  3. 3Answer real questions30 min eachFull answers to compare with.
  4. 4Build it yourselfAny timeGet your design graded.

Learn the ideas

Read, watch it move, check yourself.

Practise it

Apply what you learned until it sticks.

Keep handy

Quick look-ups while you study.

Got a minute?36 one-minute shorts on building blocks: Bloom filters, HyperLogLog, gossip, Raft, LSM trees, sagas, OAuth and more. One idea per card, swipe for the next.

Open shorts
Short on time? Pick a focus, or size a system

Got a week? Pick a focus

Try it: how many servers does your app need?

Interactive

Capacity calculator

Move any slider: these are the numbers to say out loud.

Average QPS
1,157
1,052 reads · 105 writes
Peak QPS
3,472
3× average
Storage
49.8 TB
9.1 GB/day × 5y × 3 replicas
Read egress
2.1 MB/s
≈ 0 Gbps
App servers
6
at 60% of 1,000 req/s each
Cache (hot 20%)
36.4 GB
upper bound for a day's reads

Formula: QPS = 10M × 10 ÷ 86,400 = 1,157. Ballparks: 100K DAU ≈ 11.6 QPS · 1M DAU ≈ 115.7 QPS · 10M DAU ≈ 1.2K QPS · 100M DAU ≈ 11.6K QPS · 1B DAU ≈ 115.7K QPS (at 10 actions each).