Last Updated: December 16, 2025
In software engineering, building a complex system is like constructing a city.
You wouldn't start by laying bricks for a single house without a city plan. You first need to decide where the residential areas, commercial zones, power grids, and roads will go.
This city plan is your High-Level Design (HLD).
Once the city plan is approved, an architect takes a single plot of land in a residential zone and designs the detailed blueprint for a house specifying the number of rooms, the plumbing, the electrical wiring, and the materials to be used.
This detailed house blueprint is your Low-Level Design (LLD).
Both are essential, but they operate at different levels of abstraction and serve different purposes.
In this chapter, we will take a deeper look at their differences.
High-Level Design (HLD) defines the architecture of the system.
It answers the question:
“How should the system be structured, and how will its major components interact?”
The focus here is on the what, not the how.
It answers questions like:
The output of HLD is a set of architectural diagrams, data flow diagrams, and technology choices that define the system's skeleton.
Passenger Service, Driver Service, Matching Service, Billing Service.Matching Service uses a message queue to broadcast ride requests. Passenger and Driver services communicate via WebSockets for real-time location updates.LLD zooms in on a single component or module and translates the abstract architectural concepts into concrete, implementable details that developers can code directly.
It’s where you decide the internal structure of a service — the classes, methods, data models, design patterns, and relationships.
For a single module, it answers questions like:
Billing Service from the Ride-Hailing AppRide, Invoice, PaymentStrategy, CreditCardPayment, WalletPayment.IPaymentStrategy with a method processPayment(amount). CreditCardPayment and WalletPayment would implement this interface.Invoice class "has-a" Ride object (Composition).HLD and LLD are not alternatives. They're sequential steps in the design process.
Now that you understand what Low-Level Design (LLD) is and how it connects to High-Level Design (HLD), lets explore the different types of LLD interviews at companies.