For system design knowledge, please find system-design-knowledge repo.
| Problem | Examples |
|---|---|
| Follower Feed System | |
| Friend Feed System | |
| Messaging System | |
| Photo Sharing System | |
| Privacy Setting System |
| Problem | Examples |
|---|---|
| Proximity System | |
| Nearby Friends System | |
| Map system (System design interview vol2) | Google map |
| Problem | Examples |
|---|---|
| Video Distribution System |
| Problem | Examples |
|---|---|
| File Storage System | |
| Object Storage System Done | |
| Key-value Store* | |
| Distributed message queue (System design interview vol2) |
| Problem | Examples |
|---|---|
| Hotel Reservation System | |
| Ticket Selling System* |
| Problem | Examples |
|---|---|
| Payment System | |
| Stock Exchange System | Robinhood |
| Problem | Examples |
|---|---|
| Rate Limiter | |
| Unique ID Generator | |
| Notification System | |
| Web Crawler Done | |
| Search System | |
| Typeahead/Autocomplete System | |
| URL Shortening System | |
| Metrics Monitoring and Alerting System Done |
- distributed email system (System design interview vol2)
| Problem | Examples |
|---|---|
| Ad Click Event Aggregation System Done | |
| Live Commenting System | |
| Recommendation System | |
| Flash Sale System | |
| Auction System* | eBay |
* = incomplete
- Build a real-time gaming leaderboardboard (System design interview vol2)
- Build a currency exchange system
- Build a traffic control system
- Requirements
- A group of traffic lights has two components: main lights and pedestrian lights.
- Main traffic lights have three colors: red, yellow and green.
- Pedestrian lights have two colors: red and green.
- Pedestrian lights' colors are reversed from main lights:
- Main: red/yellow - pedestrian's: green
- Main: green - pedestrian: red
- There is a button for pedestrian lights if the button is pushed in advance, pedestrian's lights change colors according to the main ones if the button isn't pushed, pedestrian's lights remain red.
- A typical junction has 4 groups of lights.
- Additional question: design the system in a way that allows cars which start from one junction after a red light don't have to stop at the next one.
- Key points in solution
- Cnosider all phase transitions (from red to green, red to orange to green, and so on)
- Be clear on the conditions in which a certain transition will take place
- Consider pedestrian crossing requirements
- Determine cycle length
- Determine clearance time
- Apportion green light approriately
- Requirements
- Build a counter system for online services
- Build a game of chess
- Build a parking garage
- Build an online bookstore
- Build an e-commerce website
- How to handle transactions?
- Build an elevator system
- Build a vending machine
- Build a task management system - Trello
- Requirement
- User can move tasks from one lane to the other and move it back.
- This should have a state diagram with many end states.
- Requirement
- Build a card game
- There should be more than one method of cards distribution such as even distribution, uneven distribution, etc.
- There are multiple situations which could be considered as a winning situation:
- One who finishes all his cards early.
- One who earns the maximum points at the last.
- Build a restaurant management system.
- https://tianpan.co/notes/2016-02-13-crack-the-system-design-interview
- https://medium.com/coders-mojo/complete-system-design-series-part-1-45bf9c8654bc
- Design A Rate Limiter
- Design A Key-value Store
- Design A Unique ID Generator In Distributed Systems
- Design A URL Shortener
- Design A Web Crawler
- Design A Notification System
- Design A News Feed System
- Design A Chat System
- Design A Search Autocomplete System
- Design YouTube
- Design Google Drive
- Proximity Service
- Nearby Friends
- Google Maps
- Distributed Message Queue
- Metrics Monitoring and Alerting System
- Ad Click Event Aggregation
- Hotel Reservation System
- Distributed Email Service
- S3-like Object Storage
- Real-time Gaming Leaderboard
- Payment System
- Digital Wallet
- Stock Exchange
- Design a URL Shortener
- Design Instagram
- Design Amazon Prime Video
- Design YouTube
- Design TikTok
- Design Uber Eats
- Design Facebook Messenger
- Design ChatGPT
- Design a Parking Garage
- Design a Rate Limiter
- Design the Payment System for the Amazon Kindle
- Design a Landmark Recognition System
- Design Typeahead for Search Box
- Design a Hotel Booking Service
- Design a Web Crawler
- Design a Distributed Message Queue
Design Gurus | Grokking Modern System Design Interview
- Designing a URL Shortening Service like TinyURL
- Designing Pastebin
- Designing Instagram
- Designing Dropbox
- Designing Facebook Messenger
- Designing Twitter
- Designing Youtube or Netflix
- Designing Typeahead Suggestion
- Designing an API Rate Limiter
- Designing Twitter Search
- Designing a Web Crawler
- Designing Facebook’s Newsfeed
- Designing Yelp or Nearby Friends
- Designing Uber backend
- Designing Ticketmaster
Educative | Grokking Modern System Design Interview for Engineers & Managers
- Design YouTube
- Design Quora
- Design Google Maps
- Design a Proximity Service / Yelp
- Design Uber
- Design Twitter
- Design Newsfeed System
- Design Instagram
- Design a URL Shortening Service / TinyURL
- Design a Web Crawler
- Design WhatsApp
- Design Typeahead Suggestion
- Design a Collaborative Document Editing Service / Google Docs
| ByteByteGo - System Design Interview | Exponent | Design Gurus - Grokking Modern System Design Interview | Educative - Grokking Modern System Design Interview for Engineers & Managers | |
|---|---|---|---|---|
| a URL Shortener (TinyURL) | Yes | Yes | Yes | Yes |
| Chat system (WhatsApp, Facebook Messenger) | Yes | Yes | Yes | Yes |
| Newsfeed (Facebook) | Yes | Yes | Yes | |
| Typeahead | Yes | Yes | Yes | Yes |
| Web crawler | Yes | Yes | Yes | Yes |
| Proximity (Yelp) | Yes | Yes | Yes | |
| Rate limiter | ||||
| Photo sharing (Instagram) | ||||
| Video watching (Youtube, Netflix) | ||||
| Food delivery (DoorDash, Uber Eats) |
| Topic | Source 1 | Source 2 |
|---|---|---|
| Scaling Instagram Infrastructure | InfoQ | Youtube |
| How Slack Works | InfoQ | Youtube |
| Scaling Slack - The Good, the Unexpected, and the Road Ahead | InfoQ | Youtube |
| Scaling Slack | InfoQ | Youtube |
| Twitter: Timelines at Scale | InfoQ | |
| How We Learned to Stop Worrying and Love Fan-In at Twitter | Youtube | |
| Scaling Pinterest | Youtube | |
| Scaling Redis at Twitter | Youtube | |
| Systems at Facebook Scale | Youtube | |
| Building Real Time Infrastructure at Facebook | Youtube | |
| Lessons of Scale at Facebook | Youtube | |
| The Evolution of Reddit.com's Architecture | Youtube | |
| Scalable and Reliable Logging at Pinterest | Youtube | |
| Facebook and memcached | Youtube |