System Design
Fundamentals
- Scalability (Horizontal vs Vertical)
- CAP Theorem
- Consistency Patterns
- Availability Patterns
- Load Balancing
- Caching Strategies
- Content Delivery Networks
- DNS & Domain Resolution
Data Layer
Communication
- REST vs gRPC vs GraphQL
- Message Queues (Kafka, RabbitMQ)
- WebSockets & Real-Time Communication
- API Gateway Pattern
Infrastructure
- Microservices Architecture
- Rate Limiting
- Circuit Breaker Pattern
- Observability (Logs, Metrics, Traces)
- Containers & Orchestration
Classic Design Problems
- Design: URL Shortener
- Design: Rate Limiter
- Design: Chat System
- Design: News Feed
- Design: Notification System
- Design: Distributed Cache
- Design: Search Autocomplete
Framework
System Design Interview Framework
- Clarify requirements (functional + non-functional)
- Back-of-envelope estimation (QPS, storage, bandwidth)
- High-level design (API + data model + architecture diagram)
- Deep dive (pick 2-3 components to detail)
- Bottlenecks & trade-offs (what breaks at 10x scale?)