- What is X
- Requirements and Goals of the System
- Functional Requirement
- Non-Functional Requirement (Available, latency, consistency, reliable(not lost))
- Extended Requirement
- Capacity Estimation and Constraints
- Traffic estimates
- Storage estimates
- Bandwidth estimates
- Memory estimates (80 - 20 rules that is 20% data generates 80% traffic daily)
- System APIs
- Database Design
- High level Design
- Component Design
- Application Layer
- How to handle a write-request
- How to handle a read-request
- Database Layer
- Metadata storage/database
- Object storage
Finish Detail design after Database layer
- Application Layer
- Data Partitioning and Replication
- Cache
- Load Balancer
- Purgin or DB Cleanup
- Security and permission
- Designing a storage/sharing service: Dropbox, Youtube, Instagram, etc.
- Designing a service that deals with geographical data: Uber, Yelp, Lyft, etc.
- Designing a social media service: Facebook, Twitter, Instagram, Snapchat, etc.
- Designing a communication service: Messenger, High traffic web server, etc.
- Designing a search related service: Search engine, Web crawler, etc.
- Designing location sharing service: Uber, Google map, Zomato
- Grooking system design
- Gaurab System design youtube
Keywords
- Open Connect
- Free code camp
- Wide Column database