System design · HLD path
High-level design, one stop at a time
10 steps from rough numbers to a full case study. Each has a diagram that plays, a widget to poke and a quiz to finish.
- 10 steps
- 5 h end to end
- 2 case studies
Got a minute?28 one-minute shorts on the HLD path. One idea per card, swipe for the next.
Open shorts- 01 25 min
Requirements and Estimation
Every design starts with what to build and how big it is. Numbers decide whether you need one server or fifty, a cache or a shard.
Step 1 - 02 30 min
Client, API and Load Balancing
One server is a limit and a single point of failure. Stateless servers plus a balancer let you add capacity by adding machines.
Step 2 - 03 35 min
Databases and Scaling
Data outlives servers and is the hardest part to scale. Choose storage by access pattern, then scale reads with replicas and writes with shards.
Step 3 - 04 30 min
Caching
Memory is about 50x faster than a database round trip. A cache with a high hit ratio cuts latency and protects the database.
Step 4 - 05 35 min
Async Processing and Messaging
Slow or unreliable work (email, video, payments) should not hold the user's request. Queues absorb spikes and let work retry safely.
Step 5 - 06 35 min
Consistency and CAP
Copies of data on many machines can disagree, especially during network failures. You choose which guarantees to keep.
Step 6 - 07 35 min
Reliability and Observability
At scale something is always broken. Reliable systems contain failures, degrade gracefully, and make problems visible.
Step 7 - 08 40 min
Case Study: URL Shortener
A classic that exercises every earlier idea: estimation, ID generation, read-heavy caching, and storage.
Step 8 - 09 40 min
Case Study: Notification System
Shows queues, fan-out, user preferences, deduplication, and external providers that fail.
Step 9 - 10 20 min
Interview Playbook
Knowing the pieces is half the job. A repeatable structure shows seniority.
Step 10