10 system design concepts your interviews are secretly based on.
(7th one is asked everywhere.)
1. Scalability: QPS, throughput, latency, storage
2. Load balancing: diverting traffic based on load
3. Database design: SQL vs NoSQL, schemas, indexes
4. Caching: Redis, cache invalidation, cache-aside, ttl
5. Sharding: partitioning data across machines
6. Replication: leader/follower, failover, read replicas
7. Rate limiting: token bucket, sliding window etc.
8. Message queues: Kafka, RabbitMQ, async
9. Consistency tradeoffs: CAP, eventual consistency
10. Reliability patterns: retries, idempotency, backpressure, circuit breakers