DEV Community

Cover image for Difference between High Level Design and Low Level Design
Satish
Satish

Posted on • Originally published at dev.to

Difference between High Level Design and Low Level Design

System design has two parts:

  1. High-Level Design (HLD)- Macro Design
  2. Low-Level Design (LLD) - Micro Design

High-Level Design: HLD is the "what and why" — it gives a bird's-eye view of the entire system. You're thinking in terms of major components, how they interact, what technologies to pick, and why. It's meant for architects, stakeholders, and product managers to align on the overall direction before any coding begins.It shows the overall plan, like a roadmap.

Low-Level Design: LLD is the "how" — it zooms into each component and specifies exactly how it will be built. You're thinking in terms of classes, database table schemas, API contracts, method signatures, state machines, and caching keys. It's meant for developers who will actually implement the system. It gives detailed steps for programmers to build each part.

A simple analogy: if you're building a house, HLD is the architect's blueprint showing the number of floors, room layout, and material choices. LLD is the contractor's drawing showing exact wall dimensions, wire routing, and pipe placements.

Here's a side-by-side comparison:

In practice, LLD is always derived from HLD — you can't write a good LLD without a solid HLD first. The HLD sets the boundaries and constraints, and the LLD fills in all the details within those boundaries.

Top comments (0)