A comprehensive collection of system design concepts, strategies, and real-world architectures for scalable software systems.
- Design Facebook's News Feed
- Design Twitter
- Design Typeahead (Autocomplete) System
- Design YouTube
- Design a Video Streaming Platform (Hello Interview)
- Design a Messaging App like WhatsApp
- Design a URL Shortener like Bit.ly
- Design a Web Crawler
- Design a File Storage Service Like Dropbox
- Design a Rate Limiter
- Design a Notification Service
- Design a Distributed Cache
- Design a Distributed Message Queue
- Design a Car Rental App
- Design a Car Rental System
- Design a Ride-Sharing Service Like Uber
- Design a Local Delivery Service like Gopuff
- Design a Dating App Like Tinder
- Design an Ad Click Aggregator System
- Top K Problem (Heavy Hitters)
- TicketMaster or BookMyShow
- Search Autocomplete (PDF)
- API Gateway vs Load Balancer
- Batch Processing vs Stream Processing
- Latency vs Throughput
- Polling vs Long Polling vs Webhooks
- Proxy vs Reverse Proxy
- REST vs RPC
- SQL vs NoSQL
- Sharding vs Partitioning
- Stateful vs Stateless Architecture
- Strong vs Eventual Consistency
- Serverless vs Traditional Server-based Architecture
- Top 25 HLD Interview Questions
- What happens when you type a URL into your browser?
- How to store passwords in database?
- ALB vs NLB in AWS
- System Design Interview - Volume 1 & 2 by Alex Xu
- Designing Data-Intensive Applications by Martin Kleppmann
- Hello Interview – Tech Interview Preparation
- Exponent – System Design Playlist
- Gaurav Sen – System Design Playlist
Feel free to open a pull request if you want to fix typos, add explanations, diagrams, or new design problems.
If you find this repository helpful, feel free to star, fork, and share it with others. Contributions and feedback are always welcome!
Thanks to the system design community, open-source contributors, and blog authors whose resources inspired many of the notes in this repository.