Systems Design Fundamentals
- Client-server architecture, request-response model
- Networking basics: TCP/IP, UDP, HTTP/HTTPS, WebSockets, gRPC, protocol buffers
- DNS: resolution, caching, load balancing via DNS
- Proxies: forward proxy, reverse proxy (Nginx, HAProxy), API gateways
- Load balancing: round robin, least connections, consistent hashing, L4 vs L7
- Caching: cache-aside, write-through, write-back, eviction policies (LRU, LFU, TTL), CDNs
- Databases: SQL vs NoSQL, ACID, CAP theorem, sharding, replication (leader-follower, multi-leader)
- Message queues: Kafka, RabbitMQ, pub/sub, event-driven architecture, exactly-once delivery
- Consistency models: strong, eventual, causal, read-your-writes
- Rate limiting, circuit breakers, backpressure