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.
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
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.
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:13 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:03 mins
Implementing Parking pots using Decorator Design pattern
Video - 00:2:35 mins
Coding Part 3
Video - 00:12:12 mins
Requirements
Reading
Identification of actors
Reading
Use case diagram
Reading
Class diagram
Reading
QnA
Reading
Activity Diagram
Reading
Code
Reading
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
High Level 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
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
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
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
Class Diagram of PayPal
A Class Diagram describes the structure of the system by showing the system’s classes, their attributes, operations (methods), and the relationships among the objects. For PayPal, the diagram illustrates how the core entities like users, accounts, payments, transactions, disputes, and bank details are connected and operate together.
Main Classes and Their Descriptions
User
- Represents any person who uses PayPal, either as a buyer or a seller.
- Attributes: userId, name, email, phoneNumber, password, userType
- Methods: login(), logout(), updateProfile(), verifyIdentity()
Account
- Holds PayPal balance and user’s financial preferences.
- Attributes: accountId, balance, accountStatus, currency
- Methods: addFunds(), withdrawFunds(), freezeAccount()
Transaction
- Represents a payment sent or received through PayPal.
- Attributes: transactionId, amount, status, timestamp, transactionType
- Methods: processPayment(), refund(), cancel()
Payment
- Specific to a send or receive money operation between two users.
- Attributes: paymentId, payer, payee, method, referenceNote
- Methods: initiate(), confirm(), fail()
BankAccount
- Linked to the user for fund withdrawals or top-ups.
- Attributes: bankId, bankName, accountNumber, routingCode
- Methods: validateBank(), linkToUser(), unlink()
Card
- Represents credit/debit card linked to a user.
- Attributes: cardId, cardNumber, cardType, expiryDate
- Methods: linkCard(), removeCard()
Invoice
- Used by merchants to request payments from customers.
- Attributes: invoiceId, issueDate, dueDate, amount, status
- Methods: generateInvoice(), sendToUser(), markPaid()
Dispute
- Created when a buyer or seller has an issue with a transaction.
- Attributes: disputeId, description, status, raisedBy, resolvedBy
- Methods: raise(), resolve(), escalate()
Admin
- Admins are responsible for fraud checks and dispute resolution.
- Attributes: adminId, name, accessLevel
- Methods: reviewTransaction(), resolveDispute(), blockUser()
Relationships Between Classes
- User → Account: One-to-One (Each user has one PayPal account)
- User → Transaction: One-to-Many (A user can have multiple transactions)
- Transaction → Payment: One-to-One (Every transaction involves a payment)
- User → BankAccount / Card: One-to-Many (User can link multiple bank accounts/cards)
- Merchant (User subtype) → Invoice: One-to-Many (Merchants can issue many invoices)
- Transaction → Dispute: Zero or One (Each transaction may have a dispute)
- Dispute → Admin: Assigned to resolve (One admin resolves a dispute)
Tips for Teaching Students
- Emphasize modularity: Each class should do only one major responsibility.
- Highlight inheritance or association where applicable.
- Explain Encapsulation using attributes and methods.
- Use tools like draw.io, UMLet, or StarUML to draw the actual diagram.
- Explain real-world mappings: e.g., “User” could be you using PayPal to send money.