Skip to content

00. High-Level Design — The Five-Year-Old Version

You know the building blocks. Now we zoom out and design entire cities.


Imagine you are a city planner. Someone says: "We need a new town for one million people."

You don't start by choosing doorknobs. You start with a blueprint — a bird's-eye drawing that shows zones. Homes here. Shops there. Factories in the back. The blueprint doesn't show every room. It shows which zones exist and how they connect.

Then you draw roads connecting the zones. People and goods need to flow between them. Wide roads for heavy traffic. Narrow lanes for quiet neighborhoods. Some roads are one-way. Some have express lanes. The road layout decides how fast the city moves.

At the city entrance, you put a toll booth. Every car entering the city passes through it. The toll booth checks who you are, decides which road to send you down, and stops the city from getting overcrowded. Without it, cars flood in and jam every intersection.

Goods need somewhere to sit. You build warehouses — big buildings that store everything the city needs. Some warehouses keep fresh produce (fast access, small capacity). Others keep bulk grain (slower, massive capacity). You pick the right warehouse for each kind of goods. Put milk in the cold room. Put furniture in the big shed.

Rush hour comes. One road jams. You add an overflow lane — a second path that absorbs the extra cars. Maybe you build a second warehouse across town so people don't all crowd into one. Maybe you duplicate the entire shopping zone on the east side. That is scaling. The overflow lane is whatever you add when the original path can't keep up.

Now notice: a city planner never designs the plumbing inside a single house. That is someone else's job. HLD is the same. You draw the zones, the roads, the toll booths, the warehouses, and the overflow lanes. You don't worry about the code inside each service — that is LLD. You worry about whether the city works when a million people show up on the same Monday morning.

One more thing. A good city plan has answers for bad days. What if the main road floods? What if a warehouse catches fire? What if the toll booth breaks? The blueprint must show backup routes, spare capacity, and emergency protocols. That is resilience — and it lives at the HLD level, not buried inside individual buildings.


The placeholders you will see called back

Placeholder Meaning
blueprint the high-level architecture diagram — zones and connections, not internal details
road communication path between components — API call, message queue, event stream
toll booth the single entry point that inspects, routes, and limits traffic — API gateway or load balancer
warehouse the storage layer — database, cache, object store, file system
overflow lane the mechanism for handling excess load — replicas, shards, queues, CDN nodes

Top resources


What's coming

  1. 01-requirements-to-architecture.md — translating vague requirements into the first box-and-arrow diagram
  2. 02-component-decomposition.md — breaking one giant box into well-bounded services
  3. 03-api-design-at-boundaries.md — how components talk: contracts, protocols, versioning
  4. 04-data-modeling-and-storage.md — choosing where data lives and which database fits
  5. 05-sync-vs-async-communication.md — request-reply vs fire-and-forget and when each wins
  6. 06-load-balancing-and-routing.md — distributing traffic so no single server drowns
  7. 07-caching-at-system-level.md — layered caches from browser to database
  8. 08-scaling-read-path.md — read replicas, CDNs, and denormalization
  9. 09-scaling-write-path.md — sharding, partitioning, and write-ahead strategies
  10. 10-consistency-and-replication.md — what happens when copies of data disagree
  11. 11-failure-modes-and-resilience.md — circuit breakers, retries, and graceful degradation
  12. 12-rate-limiting-and-backpressure.md — protecting the system from itself and from the world
  13. 13-common-hld-archetypes.md — patterns for feeds, chat, URL shorteners, and other classics
  14. 14-ai-system-hld-patterns.md — model serving, feature stores, and training pipelines
  15. 15-honest-admission.md — what we don't fully understand about designing large systems

Bridge. The blueprint is blank. First step: turn fuzzy requirements into concrete boxes and arrows. → 01-requirements-to-architecture.md