Skip to main content

Command Palette

Search for a command to run...

Understanding HLD & LLD

Published
3 min read
Understanding HLD & LLD
F

Principal Technical Consultant at GeekyAnts.

Bootstrapping our own Data Centre services.

I lead the development and management of innovative software products and frameworks at GeekyAnts, leveraging a wide range of technologies including OpenStack, Postgres, MySQL, GraphQL, Docker, Redis, API Gateway, Dapr, NodeJS, NextJS, and Laravel (PHP).

With over 9 years of hands-on experience, I specialize in agile software development, CI/CD implementation, security, scaling, design, architecture, and cloud infrastructure. My expertise extends to Metal as a Service (MaaS), Unattended OS Installation, OpenStack Cloud, Data Centre Automation & Management, and proficiency in utilizing tools like OpenNebula, Firecracker, FirecrackerContainerD, Qemu, and OpenVSwitch.

I guide and mentor a team of engineers, ensuring we meet our goals while fostering strong relationships with internal and external stakeholders. I contribute to various open-source projects on GitHub and share industry and technology insights on my blog at blog.faizahmed.in.

I hold an Engineer's Degree in Computer Science and Engineering from Raj Kumar Goel Engineering College and have multiple relevant certifications showcased on my LinkedIn skill badges.

In this part, we'll look at how HLD and LLD vary and compare them in a nutshell -

What is HLD?

Designers at HLD, which stands for High-Level Design, concentrate solely on certain models, such as:

Decisive tables, decision trees, flow diagrams, flow charts, and data dictionaries are all examples of these types of tools.

The high-level design developed by the solution architect is utilised to specify the whole application description or architecture.

Architecture and database design are two major components of the HLD.

The macro-level or system design (HLD) is another name for this. High-Level Solutions are created when a company or client need is transformed into a high-level demand.

High-Level Design comes first, then Low-Level Design, in the design process.

What is LLD?

For example, a user interface is referred to as a "Low-Level Design" component (UI).

It is the job of the developer management and the designers to produce the low-level design

Micro-level and intricate design are other terms for this approach. High-Level Solutions may be transformed into detailed solutions via the LLD.

Because all modules are described in great depth in low level design (LLD), all system logic is included in LLD. It delves deep into the details of each module's spec.

After the High-Level Design is completed, the Low-Level Design is developed.

HLD vs LLD

BasisHLDLLD
Stands forHigh-Level Design.Low-Level Design.
DefinitionIt is the overarching design of the system, which implies it represents the overall design of the system.When used to describe component-level design, it has the same significance as discussing high-level design.
PurposeProvides a clear description of each component's function.Identifies the component's specific efficient logic.
Also, known asSystem or macro-level design.Details or micro-level design.
Developed bySolution ArchitectDesigner & Developer
Sequential OrderIt's created first in order.It is developed after High-level design.
Target AudienceManagement, program, and solution teams.Designers, operational teams, and implementers.
ConversionUsing the HLD, a low-level problem can be advanced to a high-level solution.The LLD shifts from a high-level to a complete solution.
Probable outputThe high-level design is required in order to comprehend the interrelationships between various components of the system.The creation of configurations and the investigation of inputs requires a low-level design.
Input CriteriaAs a high-level design input, SRS is used (Software Requirement Specification).The evaluated HLD is used as an input metric in low-level design (High- Level Design).
Output CriteriaFunctioning design, database design, and review record are the HLD's output measurements.The unit test plan and programme specification serve as the low-level design's output basis.

Conclusion

In this part, we've learned the most important distinction between high-level and low-level designs.

In other words, the high-level design defines the whole report and planning for the specific software product or application. Despite this, the low-level design defines the detailed report for each module.

Design team members, client teams and review teams are all involved in high-level design throughout the Software Development Life Cycle's design phase. Design and operations teams will, on the other hand, create low-level design.

Finally, we can state that the design phase of the SDLC process for each software product requires both HLD and LLD.


About Me 👨‍💻

I'm Faiz A. Farooqui. Software Engineer from Bengaluru, India. Find out more about me @ faizahmed.in