System Design Checklist
Introduction
- System Design Interviews
- Introduction
- Abstractions
- Non-functional system characteristics
- Back-of-the-envelope calculations
Building Blocks
- Introduction
- DNS
- Load balancers
- Databases
- Key-value store
- CDN
- Sequencer
- Distributed monitoring
- Monitoring server-side errors
- Monitoring client-side errors
- Distributed cache
- Distributed messaging queue
- Pub-sub system
- Rate limiter
- Blob store
- Distributed search
- Distributed logging
- Distributed task scheduler
- Sharded counters
- Concluding building blocks
Design Problems
- Design YouTube
- Design Quora
- Design Google Maps
- Design Yelp
- Design Uber
- Design Twitter
- Design Newsfeed system
- Design Instagram
- Design TinyURL
- Design Web crawler
- Design WhatsApp
- Design Typeahead
- Design Google Docs
Epilogue
- Spectacular failures
- Concluding remarks