LLD Introduction

LLD vs HLD

Understanding the difference between Low-Level Design and High-Level Design, and when to apply each in system design.

8 min readEssential

1Overview

Real-World Analogy
Building a House

HLD is the architect's blueprint: how many floors, room layout, where plumbing goes. LLD is the detailed construction plan: exact measurements, which screws to use, wiring diagrams.

Writing a Book

HLD is the outline: chapters, main plot points, character arcs.LLD is writing each sentence, choosing words, formatting paragraphs.

High-Level Design (HLD) focuses on system architecture - components, how they communicate, technology choices, and scaling strategies.

Low-Level Design (LLD) focuses on implementation details - classes, methods, data structures, algorithms, and design patterns.

2Key Differences

AspectHLD (High-Level)LLD (Low-Level)
FocusSystem architectureCode structure
AbstractionHigh (boxes and arrows)Low (classes and methods)
DiagramsSystem diagrams, flowchartsUML class/sequence diagrams
ConcernsScalability, availability, latencyMaintainability, extensibility, testability
TechnologyDatabases, message queues, CDNsClasses, interfaces, design patterns
Who createsSystem architectsSoftware engineers
Interview examplesDesign Twitter, Design URL ShortenerDesign Parking Lot, Design Chess

3High-Level Design (HLD)

HLD Covers:
  • System components and their interactions
  • Database choices (SQL vs NoSQL)
  • Caching strategies (Redis, Memcached)
  • Message queues (Kafka, RabbitMQ)
  • Load balancing approaches
  • API design (REST, GraphQL, gRPC)
  • Scaling strategies (horizontal/vertical)
  • Data partitioning and sharding
  • CDN and content delivery
  • Failure handling and redundancy
Example: URL Shortener HLD

1. API Gateway receives requests

2. Application servers handle URL creation/redirection

3. Distributed key-value store for URL mapping

4. Cache layer for hot URLs

5. Analytics service for click tracking

6. CDN for faster global access

4Low-Level Design (LLD)

LLD Covers:
  • Class design and relationships
  • Interface definitions
  • Design patterns (Singleton, Factory, etc.)
  • SOLID principles application
  • Data structures for entities
  • Method signatures and logic
  • Error handling strategies
  • Concurrency considerations
  • UML diagrams (Class, Sequence)
  • Code organization and modules
Example: Parking Lot LLD

1. Classes: ParkingLot, Floor, ParkingSpot, Vehicle, Ticket

2. Interfaces: ParkingStrategy, PaymentProcessor

3. Patterns: Singleton for ParkingLot, Strategy for spot allocation

4. Enums: VehicleType, SpotType, TicketStatus

5. Relationships: ParkingLot has many Floors (Composition)

5Interview Context

HLD Interview Problems
  • Design Twitter/Instagram
  • Design URL Shortener
  • Design Netflix/YouTube
  • Design Uber/Lyft
  • Design WhatsApp
  • Design E-commerce Platform
LLD Interview Problems
  • Design Parking Lot
  • Design Chess Game
  • Design Elevator System
  • Design Library Management
  • Design ATM Machine
  • Design Tic-Tac-Toe
Interview Strategy
  • HLD: Start with requirements, estimate scale, design components, discuss tradeoffs
  • LLD: Clarify requirements, identify entities, design classes, apply patterns, discuss extensibility
  • Both: Ask clarifying questions, think out loud, consider edge cases

6Key Takeaways

1HLD = System architecture (what components, how they connect)
2LLD = Code design (classes, methods, patterns)
3HLD concerns: scalability, availability, performance
4LLD concerns: maintainability, extensibility, testability
5HLD uses system diagrams; LLD uses UML class/sequence diagrams.
6Both are essential skills for senior engineering roles.