A stage-by-stage system design reference
System Design, from first principles.
Most system design material teaches you to memorize architectures. This teaches you the machinery underneath — why a database uses B-Trees and not red-black trees, what a load balancer actually decides per request, what CAP really means and what it doesn't. Every chapter is a self-contained reference with diagrams, tradeoff tables, and interview-ready explanations.
Core Building Blocks
APIs, Databases, Caching, Load Balancing, Proxies
Scalability & Performance
Horizontal vs Vertical Scaling, Sharding, Replication, Rate Limiting
Distributed Systems
CAP Theorem, Consistency Models, Consensus, Transactions
Advanced Topics
Design Patterns, Message Queues, Event Sourcing
Architecture Patterns
Microservices, Serverless, Event-Driven, Domain-Driven Design
Design Decisions
Tradeoff frameworks and decision matrices
Concurrency & Parallelism
Threading, locks, distributed coordination
Observability & Monitoring
Logging, metrics, tracing, alerting
Security
Auth, encryption, threat models
Real-Time & Communication
WebSockets, Server-Sent Events, Video Streaming
Location & Geospatial
Spatial Indexes, Geohashing, H3
How to Use This
Each chapter follows the same structure:
- The Problem — why this concept exists, what happens without it
- First Principles — the core idea explained from the ground up
- How It Works — mechanics, internals, data structures
- Tradeoffs — comparison tables, decision frameworks
- Interview Tips — when to bring this up, what to say, common mistakes
- Visual Models — ASCII diagrams, flow charts, architecture boxes
Who This Is For
Backend engineers preparing for system design interviews, and anyone who wants to understand why systems are designed the way they are — not just what the pieces are called.
Built in the open, improved by the community
Found a mistake? Want to add a diagram? Every improvement makes this reference better for the next engineer. Contributions of all sizes are welcome.
Contribute on GitHub →