10 System Design Concepts in Plain English:
1 Scalability
↳ Handle extra load without affecting performance.
2 Load Balancer
↳ Route requests to free servers to avoid overload.
3 Cache
↳ Keep hot data nearby for quick access.
4 Sharding
↳ Split the data into smaller parts so that many servers share the load.
5 Replication
↳ Keep data copies so the system is available during failures.
6 Message Queue
↳ Store and serve messages between services reliably.
7 CDN
↳ Edge servers around the world for fast delivery and caching.
8 Rate Limiter
↳ Controlling the number of requests a user can make in a time window.
9 Monitoring
↳ Checking system metrics, logs, and alerts to find problems early.
10 Failover
↳ Automatic switching to the backup system on failure to avoid service problems.
(That’s 80% of the concepts you need to know.)
What else would you add?