Low & High Level System Design
0% Completed
Low Level System Design
Low Level Design Basic Building Blocks
Learn core LLD concepts like inheritance, association, composition, aggregation, with a quick quiz to test understanding.
SOLID Principles
Understand SOLID principles to design clean, scalable, and maintainable systems, with a quiz to reinforce concepts.
Design Patterns
Creational Design Patterns
Learn object creation patterns like Factory, Builder, Singleton, and more, with a quiz to test understanding.
Structural Design Patterns
Learn patterns like Adapter, Decorator, Facade, and Bridge to structure flexible systems, with a quiz to test understanding.
Behavioural Design Patterns
Understand interaction-focused patterns like Command, Observer, State, and Strategy, with a quiz to test concepts.
LLD Topics
LLD Basic Case Studies
Pizza factory
Design a Pizza Factory system from requirements to diagrams, code implementation, and interview Q&A.
SQL Query builder
Design an SQL Query Builder from requirements to diagrams, code implementation, and interview Q&A.
Logger
Design a Logger system covering requirements, diagrams, code, and interview Q&A
Car Price Calculator
Design a Car Price Calculator from requirements to diagrams, code implementation, and interview Q&A.
Weather Station
Design a Weather Station system from requirements to diagrams, code implementation, and interview Q&A.
Intermediate LLD Case Studies
Ticket management system
Design a Ticket Management System from requirements to diagrams, code implementation, and interview Q&A.
Payment processor
Design a Payment Processor from requirements to diagrams, code implementation, and interview Q&A.
Elevator System
Design an Elevator System from requirements to diagrams, code implementation, and interview Q&A.
Car parking
Design a Car Parking system covering requirements, diagrams, services, logging, design patterns, and complete code implementation.
Introduction Video
Video - 00:00:55 mins
Use Case Diagram
Video - 00:3:44 mins
Class Diagram
Video - 00:6:07 mins
Class Diagram continued
Video - 00:5:30 mins
Services
Video - 00:9:57 mins
Parking Service
Video - 00:7:59 mins
Discussion on Parking Spots and Parking Service
Video - 00:8:12 mins
Activity Diagram
Video - 00:4:17 mins
Coding Part 1
Video - 00:34:45 mins
How to add Logging in the system
Video - 00:2:20 mins
Coding Part 2 (Adding Logging in the system)
Video - 00:6:04 mins
Implementing Parking pots using Decorator Design pattern
Video - 00:2:34 mins
Coding Part 3
Video - 00:12:11 mins
Requirements
Reading
Identification of actors
Reading
Use case diagram
Reading
Class diagram
Reading
QnA
Reading
Activity Diagram
Reading
Code
Reading
Advanced LLD Case Studies
Social media
Design a Social Media system from requirements to diagrams, code implementation, and interview Q&A.
WhatsApp
Design a WhatsApp-like system from requirements to diagrams, code implementation, and interview Q&A.
Amazon
Design an Amazon-like system from requirements to diagrams, code implementation, and interview Q&A.
PayPal
Design a PayPal-like payment system from requirements to diagrams, code implementation, and interview Q&A.
Assignment
Apply design patterns by implementing the Snakes and Ladders game end-to-end.
High Level System Design
Building Blocks
Learn core HLD concepts like scalability, consistency, caching, databases, real-time systems, and GenAI-enabled APIs.
What is HLD?
Reading
Consistent Hashing
Reading
Caching
Reading
Load Balancing
Reading
CAP Theorem
Reading
Indexes
Reading
Redundancy and Replication
Reading
SQL vs NoSQL
Reading
Data Partitioning
Reading
Long Polling and WebSockets
Reading
Retrieval Augmented Generation (RAG)
Reading
Quorum
Reading
Gen AI-enabled API Systems
Reading
Basic HLD Case Studies
TinyURL
Design a TinyURL system covering requirements, capacity planning, APIs, databases, caching, scaling, and testing.
Introduction
Reading
Requirements & Goals of the System
Reading
Capacity Estimations & Constraints
Reading
System APIs
Reading
Database design & Schema
Reading
High-Level Design
Reading
QnA
Reading
Purging & Db Cleanup
Reading
Database Partitioning & Replication
Reading
Cache & Load Balancing
Reading
Test
Reading
Rate Limiter
Design a Rate Limiter covering requirements, capacity planning, APIs, data storage, caching, scaling, and reliability.
Introduction
Reading
Requirements & Goals of the System
Reading
Capacity Estimations & Constraints
Reading
System APIs
Reading
Database design & Schema
Reading
High Level Design
Reading
QnA
Reading
Purging & Db Cleanup
Reading
Database Partitioning & Replication
Reading
Cache & Load Balancing
Reading
Intermediate HLD Case Studies
Typeahead suggestion (Google queries)
Design a Typeahead system covering requirements, capacity planning, APIs, data storage, caching, scaling, and reliability.
Introduction
Reading
Requirements & Goals of the System
Reading
Capacity Estimations & Constraints
Reading
System APIs
Reading
Database design & Schema
Reading
High Level Design
Reading
QnA
Reading
Purging & Db Cleanup
Reading
Database Partitioning & Replication
Reading
Cache & Load Balancing
Reading
Pastebin
Design a Pastebin-like system covering requirements, capacity planning, APIs, databases, caching, scaling, and reliability.
Introduction
Reading
Requirements & Goals of the System
Reading
Capacity Estimations & Constraints
Reading
System APIs
Reading
Database design & Schema
Reading
High Level Design
Reading
QnA
Reading
Purging & Db Cleanup
Reading
Database Partitioning & Replication
Reading
Cache & Load Balancing
Reading
Advanced HLD Case Studies
DropBox
Design a Dropbox-like system covering requirements, capacity planning, APIs, storage, caching, scaling, and reliability.
Introduction
Reading
Requirements & Goals of the System
Reading
Capacity Estimations & Constraints
Reading
System APIs
Reading
Database design & Schema
Reading
High Level Design
Reading
QnA
Reading
Purging & Db Cleanup
Reading
Database Partitioning & Replication
Reading
Cache & Load Balancing
Reading
Instagram
Design an Instagram-like system covering requirements, capacity planning, APIs, databases, caching, scaling, and reliability.
Introduction
Reading
Requirements & Goals of the System
Reading
Capacity Estimations & Constraints
Reading
System APIs
Reading
Database design & Schema
Reading
High Level Design
Reading
QnA
Reading
Purging & Db Cleanup
Reading
Database Partitioning & Replication
Reading
Cache & Load Balancing
Reading
Messenger
Design a Messenger system covering requirements, capacity planning, APIs, databases, caching, scaling, and reliability.
Introduction
Reading
Requirements & Goals of the System
Reading
Capacity Estimations & Constraints
Reading
System APIs
Reading
Database design & Schema
Reading
High Level Design
Reading
QnA
Reading
Purging & Db Cleanup
Reading
Database Partitioning & Replication
Reading
Cache & Load Balancing
Reading
BookMyShow
Design a BookMyShow-like ticketing system covering requirements, capacity planning, APIs, databases, caching, scaling, and reliability.
Introduction
Reading
Requirements & Goals of the System
Reading
Capacity Estimations & Constraints
Reading
System APIs
Reading
Database design & Schema
Reading
High Level Design
Reading
QnA
Reading
Purging & Db Cleanup
Reading
Database Partitioning & Replication
Reading
Cache & Load Balancing
Reading
Uber/Ola
Design a ride-hailing system covering requirements, capacity planning, APIs, databases, real-time matching, scaling, and reliability.
Introduction
Reading
Requirements & Goals of the System
Reading
Capacity Estimations & Constraints
Reading
System APIs
Reading
Database design & Schema
Reading
High Level Design
Reading
QnA
Reading
Purging & Db Cleanup
Reading
Database Partitioning & Replication
Reading
Cache & Load Balancing
Reading
Newsfeed
Design a Newsfeed system covering requirements, capacity planning, APIs, databases, caching, feed generation, scaling, and reliability.
Introduction
Reading
Requirements & Goals of the System
Reading
Capacity Estimations & Constraints
Reading
System APIs
Reading
Database design & Schema
Reading
High Level Design
Reading
QnA
Reading
Purging & Db Cleanup
Reading
Database Partitioning & Replication
Reading
Cache & Load Balancing
Reading
Youtube/Netflix
Design a video streaming system covering requirements, capacity planning, APIs, storage, caching, scaling, and reliability.
Introduction
Reading
Requirements & Goals of the System
Reading
Capacity Estimations & Constraints
Reading
System APIs
Reading
Database design & Schema
Reading
High Level Design
Reading
QnA
Reading
Purging & Db Cleanup
Reading
Database Partitioning & Replication
Reading
Cache & Load Balancing
Reading
1. Introduction
TinyURL is a URL shortening service that converts long URLs into short, easy-to-share links. It should be scalable, efficient, and highly available to handle millions of URL redirections.
2. System Requirements
2.1 Functional Requirements
- Shorten a URL – Users can input a long URL and receive a shortened version.
- Redirect to Long URL – When accessing a short URL, the system redirects to the original long URL.
- Custom Short URLs (Optional) – Users can provide a custom alias instead of a random string.
- Expiration Support – URLs can have an expiry date (optional).
- Analytics (Optional) – Track clicks, geo-location, and referrer data.
2.2 Non-Functional Requirements
- High Availability – The system should be available 24/7.
- Low Latency – Short URL lookups should be fast (<10ms).
- Scalability – Handle millions of URL shortenings and redirections.
- Security – Prevent abuse (spam, phishing, brute-force attacks).
- Consistency – Ensure users always get the correct long URL.
3. High-Level Architecture
- Client Layer – Web, Mobile, API Clients
- Load Balancer – Distributes traffic across multiple servers
- Application Layer – Handles URL shortening, retrieval, and analytics
- Cache (Redis/Memcached) – Caches frequently accessed URLs
- Database (SQL/NoSQL) – Stores URL mappings
- Analytics System (Optional) – Collects user click data
4. Component Breakdown
4.1 API Gateway
- Exposes RESTful APIs for clients (web/mobile).
- Handles authentication and rate limiting.
4.2 URL Shortening Service
- Generates a unique short URL for each long URL.
- Stores the mapping in a database.
4.3 Redirection Service
- Fetches the long URL from storage.
- Redirects the user to the original URL.
- Logs analytics (if enabled).
4.4 Database Layer
- SQL (MySQL/PostgreSQL): Good for relational data and indexing.
- NoSQL (DynamoDB, Cassandra, MongoDB): Better for high scalability.
4.5 Caching Layer (Redis/Memcached)
-
Stores frequently accessed URLs to reduce DB calls.
4.6 Analytics Service (Optional)
- Stores click events (timestamp, IP, referrer, device).
- Provides reports and dashboards.
5. URL Generation Logic
- A short URL is typically a 6-10 character alphanumeric string.
- Example:
Original URL: https://www.example.com/this-is-a-very-long-url
Shortened: https://tinyurl.com/XyZ123-
Encoding Methods:
Base62 Encoding – Converts a unique ID into a string of[0-9A-Za-z].
Hashing (MD5/SHA-256) – Generates a fixed-length identifier.
Collision Handling – Retry with a new string if a collision occurs.
6. Scaling Considerations
- Database Sharding – Distribute URLs across multiple DB servers.
- CDN for Faster Access – Use Cloudflare or AWS CloudFront.
- Load Balancers – Distribute traffic across multiple app instances.
- Replication – Use database replicas for read-heavy operations.
- Asynchronous Processing – Queue analytics logging instead of blocking requests.
7. Security Measures
- Rate Limiting – Prevent abuse of the URL shortening API.
- Blacklist – Block malicious/phishing URLs.
- Token-based Authentication – Secure API access.
- SSL/TLS Encryption – Protect data in transit.
8. System APIs
8.1 Shorten URL API
POST /shorten
{
"long_url": "https://www.example.com/long-url",
"custom_alias": "myShortUrl" (optional),
"expiry_date": "2025-01-01T00:00:00Z" (optional)
}
Response:
{
"short_url": "https://tinyurl.com/XyZ123"
}
8.2 Redirect API
GET /XyZ123
Response:
-
302 Redirect to long URL.
8.3 Analytics API (Optional)
GET /analytics/XyZ123
Response:
{
"clicks": 1023,
"geo_distribution": { "USA": 50%, "India": 30%, "Others": 20% },
"top_referrers": ["facebook.com", "twitter.com"]
}
9. Capacity Estimations
- 50M new URLs/month → 600M URLs/year
- Each short URL needs 7 bytes (Base62 encoding).
- Storage Needs: ~ 10-20TB for 5 years.
- 10K requests/sec capacity for global scaling.
10. Summary
TinyURL is a high-performance, distributed system for URL shortening.
Caching, database sharding, and load balancing ensure scalability.
Security measures protect against spam and abuse.