LLD vs HLD
Understanding the difference between Low-Level Design and High-Level Design, and when to apply each in system design.
1Overview
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.
HLD is the outline: chapters, main plot points, character arcs.LLD is writing each sentence, choosing words, formatting paragraphs.
Low-Level Design (LLD) focuses on implementation details - classes, methods, data structures, algorithms, and design patterns.
2Key Differences
| Aspect | HLD (High-Level) | LLD (Low-Level) |
|---|---|---|
| Focus | System architecture | Code structure |
| Abstraction | High (boxes and arrows) | Low (classes and methods) |
| Diagrams | System diagrams, flowcharts | UML class/sequence diagrams |
| Concerns | Scalability, availability, latency | Maintainability, extensibility, testability |
| Technology | Databases, message queues, CDNs | Classes, interfaces, design patterns |
| Who creates | System architects | Software engineers |
| Interview examples | Design Twitter, Design URL Shortener | Design Parking Lot, Design Chess |
3High-Level Design (HLD)
- 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
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)
- 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
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
- Design Twitter/Instagram
- Design URL Shortener
- Design Netflix/YouTube
- Design Uber/Lyft
- Design WhatsApp
- Design E-commerce Platform
- Design Parking Lot
- Design Chess Game
- Design Elevator System
- Design Library Management
- Design ATM Machine
- Design Tic-Tac-Toe
- 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