System Design Interview - Chapter 1 - Scale from zero to millions of users
A great generic plan for scaling any app from zero to millions of users.
- Single server setup
- Selection and usage of database
- Vertical scaling vs horizontal scaling approaches. And why you should prefer horizontal
- Adding load balancer for horizontal scaling
- Adding database replication for horizontal scaling
- Adding cache
- Adding CDN
- Stateless vs Stateful architecture and using external state storage
- Adding extra Data Centers
- Adding Message queue
- Adding Logging, Metrics, and Automation
- Scaling database (sharding)
- and futher steps…
All of these is carefully but briefly disclosed in the Chapter 1 of the book:
I HIGHLY RECOMMEND IT!!!
Sharing my mind map with all the details as usual:
See also:
- System Design Interview - Chapter 3 - A Framework for System Design Interviews
- System Design Interview - Chapter 5 - Design Consistent Hashing
- System Design Interview - Chapter 2 - Back-to-the-envelope estimation
- System Design Interview - Chapter 6 - Design a Key-Value store
- System Design Interview - Chapter 4 - Design a Rate Limiter