System Design Knowledge Base
A structured reference for engineers preparing for system design interviews or building production-grade distributed systems.
What's Covered
| Topic | Description |
|---|---|
| Architecture Fundamentals | CAP theorem, consistency models, trade-offs |
| Capacity Planning & Estimation | Back-of-envelope math, traffic/storage estimation |
| Interview Framework | Structured approach to design interviews |
| Scaling Reads | Caching, read replicas, CDN, CQRS |
| Scaling Writes | Sharding, partitioning, write-ahead log |
| Real-Time Updates | WebSocket, SSE, polling strategies |
| Handling Contention | Locks, MVCC, optimistic concurrency |
| Large Blob Storage | Object storage, chunking, CDN delivery |
| Multi-Step Processes | Sagas, orchestration, choreography |
| Long-Running Tasks | Job queues, async patterns, progress tracking |
| Microservices Patterns | Service mesh, circuit breaker, API gateway |
| Database Design | Normalization, indexing, partitioning |
| Caching Strategies | Cache aside, write-through, eviction policies |
| Message Queues & Streaming | Kafka, RabbitMQ, pub/sub, event sourcing |
| API Design | REST, gRPC, GraphQL, versioning |
| Distributed Systems | Consensus, leader election, clock sync |
| Security Patterns | AuthN/AuthZ, rate limiting, zero trust |
| Common Interview Questions | Full question bank with discussion points |
How to Use This Guide
- For interviews — Start with the Interview Framework, then study each pattern topic.
- For production systems — Jump directly to the relevant pattern topic.
- For review — Use the Common Interview Questions page as a self-test.
Key Principles to Internalize
- There is no silver bullet — every design choice is a trade-off.
- Identify bottlenecks first — don't optimize prematurely.
- Consistency vs. Availability — know which one your use case needs.
- Data is the hardest part — compute is cheap, storage and consistency are not.