Skip to main content
In system design discussions you’ll repeatedly encounter two complementary perspectives: High-Level Design (HLD) and Low-Level Design (LLD). Both matter, but they answer different questions and are used in different contexts.
The image shows a diagram with two boxes labeled "L-L-D" (Low-Level Design) and "H-L-D" (High-Level Design) under the title "System Design."
High-level design is the zoomed-out blueprint. It identifies major components—application servers, databases, caches, queues, CDNs—and maps how requests flow between them. When interviewers ask you to “design Instagram,” they usually expect an HLD: how requests travel, where data lives, how the system scales under load, where single points of failure exist, and how to recover. Low-level design zooms into a single component or feature. It describes implementation details: function responsibilities, data structures, APIs, and edge-case handling. Examples of LLD interview prompts include “Design the Like feature” or “Implement an in-memory cache.” These questions probe the detailed code structure, algorithms, and performance trade-offs.
This lesson focuses on High-Level Design—component interaction, system behavior under load, and scaling strategies. We deliberately avoid internal implementation details for each component in this course.
To make the difference concrete, consider a photo-sharing app:
  • HLD: Show where the web/mobile clients connect, which frontends and backend services handle requests, where the image store and metadata DB live, any caches or message queues, and how to scale or replicate components.
  • LLD: Cover the exact steps when a user taps “like”: which API is called, how to enforce idempotency, how to update counters atomically, and how to design cache keys and TTLs.
Comparison at a glance:
The image depicts an interview scenario where the interviewer asks candidates to design different features: "Design Instagram" (HLD), "Design the Like feature" (LLD), and "Design an in-memory cache" (LLD).
Below is a short LLD-style example showing the kind of code-level detail we intentionally do not cover in this HLD-focused course. It illustrates cache lookups, database checks, and count updates for a “like” action. Note: this is illustrative only.
Further reading and references

Watch Video