The Evolution of Architecture
System Design interviews test your ability to build scalable, highly available systems. A classic question is "How do you scale a system to handle millions of users?"
Key Milestones
- Single Server: Web, App, and Database on one machine.
- Database Separation: Moving the DB to a separate server for independent scaling.
- Vertical Scaling (Scale Up): Adding more RAM/CPU to a single server. Limited by hardware.
- Horizontal Scaling (Scale Out): Adding more servers and using a Load Balancer to distribute traffic.
- Database Replication: Master-Slave architecture for read-heavy workloads.
- Caching & CDNs: Using Redis/Memcached and Content Delivery Networks to reduce latency.