0 · How to approach a design · What 'high level' means

What 'high level' means

High-level system design is about boxes, arrows and trade-offs — not code. Given a vague product ("build a URL shortener"), you decide which components exist, how data flows between them, where it lives, and what breaks first as traffic grows.

You're done learning a concept when you can answer three questions about it:

  1. What problem does it solve? (what hurts without it)
  2. What does it cost? (latency, consistency, money, complexity)
  3. When would I not use it?
ClientLBAppstatelessCacheDB

Almost every design you'll see is a variation of the picture above. The course adds one piece at a time and asks why.