Skip to content

What is System Design?

System design is the process of defining the architecture, components, modules, and data flow of a system to satisfy specific requirements.

Analogy — Building a house:

  • Low-Level Design (LLD) = deciding which bricks, the electrical wiring diagram, the pipe diameter — the details.
  • High-Level Design (HLD) = deciding how many floors, where the kitchen goes, where the windows face — the big picture.

System design interviews test HLD — can you architect a system that serves millions of users?


AspectHigh-Level Design (HLD)Low-Level Design (LLD)
ScopeOverall architectureComponent-level details
WhoArchitects, senior engineersIndividual developers
OutputBlock diagrams, tech choicesClass diagrams, API specs, DB schemas
InterviewSystem design rounds (whiteboard)Coding rounds (implement a feature)
Time30-60 min discussionHours to days

For interviews: Every top tech company (Google, Meta, Amazon, Microsoft) has system design rounds for mid-to-senior positions. It tests your ability to think at scale.

For real-world engineering: Without good system design, you get:

  • A site that crashes under load (fail)
  • Wasted money on over-provisioned servers (cost)
  • Impossible-to-change spaghetti architecture (maintenance)

When designing systems, these are the qualities you optimize for:

AttributeWhat It Means
ScalabilityCan the system handle more users?
AvailabilityIs the system up when users need it?
LatencyHow fast does it respond?
ConsistencyDo all users see the same data?
DurabilityIs data safe if a server crashes?
Fault ToleranceDoes the system survive failures?
MaintainabilityCan engineers easily update it?

  • Every design choice is a trade-off. Consistency vs availability. Latency vs throughput. Cost vs reliability.
  • There’s no perfect system — only the right system for your constraints.

  • System design = planning how a large software system is built before coding it.
  • HLD is the big picture (what servers, databases, caches to use). LLD is the details (exact code, queries, classes).
  • Every choice trades one quality for another — good designers understand these trade-offs.