System Design Concepts
A comprehensive, interview-focused study guide covering the concepts, trade-offs, and real-world patterns behind designing scalable, reliable, and secure systems. Each topic is broken into focused sub-topics, and every sub-topic follows the same structure — a friendly summary, a deep technical walkthrough, a worked example, five interview questions with hints, and curated references for going further.
How to Use This Guide
Work through the topics in order for a structured path from fundamentals to real-world system design, or jump directly to a topic you want to sharpen. Each topic has its own README with a detailed overview and a summary of every sub-topic, so start there to get oriented before diving into individual pages.
- Preparing for interviews? Focus on the interview questions at the end of each sub-topic and the trade-off discussions throughout.
- Building real systems? The "Seeing It in Action" sections and worked examples map concepts to practical decisions.
- Brushing up a specific area? Use the topic index below to jump straight in.
Illustrations for each page are catalogued in image-prompts.
Foundations
The groundwork: how to analyze a problem, communicate a design, choose where data lives, and reason about database internals.
01 — Requirements & Problem Analysis
Turning a vague prompt into a bounded, well-scoped problem — functional vs non-functional requirements, constraints and assumptions, back-of-the-envelope estimation, and prioritization. (4 sub-topics)
02 — System Design Fundamentals
The diagrams and design artifacts that communicate architecture — high-level and low-level design, and the full family of UML and modeling diagrams from use-case to sequence to ER. (10 sub-topics)
03 — Data Storage
Choosing the right store for the job — SQL, NoSQL, and NewSQL, plus the full spectrum of key-value, document, wide-column, graph, time-series, in-memory, object, and file storage. (11 sub-topics)
04 — Database Concepts
The theory behind every storage decision — ACID, transactions and isolation levels, the CAP theorem, consistency models, indexing, normalization, sharding, and replication. (8 sub-topics)
Building Blocks
The core mechanisms that make systems scale, stay up, communicate, and run fast.
05 — Scalability
Handling growth — vertical vs horizontal scaling, auto-scaling and elasticity, load balancing, sharding, replication and read replicas, and consensus and leader election. (6 sub-topics)
06 — Availability & Reliability
Staying up when things fail — high availability, fault tolerance and failover, disaster recovery, backups and durability, data consistency, circuit breakers, and graceful degradation. (7 sub-topics)
07 — Networking
The wires everything runs on — TCP/IP and UDP, HTTP and HTTPS, DNS, CDNs, load balancers and reverse proxies, firewalls and VPNs, and WebSockets. (7 sub-topics)
08 — Caching
Doing less work by remembering answers — caching layers, read/write patterns, cache invalidation, eviction policies, and Redis vs Memcached. (5 sub-topics)
09 — Messaging & Communication
Decoupling services in time and load — message queues, pub/sub, Kafka vs RabbitMQ vs SQS, idempotency, and dead-letter queues. (5 sub-topics)
10 — Compute & Services
Where code runs and how services connect — web vs app servers, API gateways, monolith vs microservices, serverless, containers and orchestration, service discovery, and service mesh. (7 sub-topics)
Interfaces, Security & Data at Scale
Designing the contracts between systems, securing them, and storing large-scale data.
11 — API Design
The contracts between systems — REST, GraphQL, gRPC, API versioning and idempotency, authentication and authorization, rate limiting, and pagination. (7 sub-topics)
12 — Security
Designing systems that resist attack — authentication and authorization, OAuth2 and JWT, encryption, data privacy, input validation and injection, XSS and CSRF, and secrets management. (7 sub-topics)
13 — Storage & File Systems
Where and how data physically lives — block vs file vs object storage, distributed file systems, data lakes and warehouses, ephemeral storage, and backup and retention. (5 sub-topics)
Operations & Patterns
Knowing what your system is doing, and the reusable patterns that keep it healthy.
14 — Observability & Monitoring
Knowing what your system is actually doing — logging, metrics, distributed tracing, health checks, and SLI/SLO/SLA with error budgets. (5 sub-topics)
15 — Design Patterns
Reusable solutions to recurring problems — creational, structural, and behavioral patterns, plus the resilience patterns: circuit breaker, retry, bulkhead, and rate limiter. (6 sub-topics)
Coming Soon
The following topics are in progress and will be added soon.
- 16 — Performance Optimization (coming soon)
- 17 — Distributed Systems Concepts (coming soon)
- 18 — Cloud & Infrastructure (coming soon)
- 19 — Advanced Topics (coming soon)
- 20 — Real-World System Design (coming soon)
- 21 — Interview Process (coming soon)
- 22 — Non-Functional Requirements (coming soon)
- 23 — Trade-Offs to Know (coming soon)
- 24 — Other Important Topics (coming soon)
Topic Index
| # | Topic | Sub-Topics | Status |
|---|---|---|---|
| 01 | Requirements & Problem Analysis | 4 | ✅ Available |
| 02 | System Design Fundamentals | 10 | ✅ Available |
| 03 | Data Storage | 11 | ✅ Available |
| 04 | Database Concepts | 8 | ✅ Available |
| 05 | Scalability | 6 | ✅ Available |
| 06 | Availability & Reliability | 7 | ✅ Available |
| 07 | Networking | 7 | ✅ Available |
| 08 | Caching | 5 | ✅ Available |
| 09 | Messaging & Communication | 5 | ✅ Available |
| 10 | Compute & Services | 7 | ✅ Available |
| 11 | API Design | 7 | ✅ Available |
| 12 | Security | 7 | ✅ Available |
| 13 | Storage & File Systems | 5 | ✅ Available |
| 14 | Observability & Monitoring | 5 | ✅ Available |
| 15 | Design Patterns | 6 | ✅ Available |
| 16 | Performance Optimization | — | 🔜 Coming soon |
| 17 | Distributed Systems Concepts | — | 🔜 Coming soon |
| 18 | Cloud & Infrastructure | — | 🔜 Coming soon |
| 19 | Advanced Topics | — | 🔜 Coming soon |
| 20 | Real-World System Design | — | 🔜 Coming soon |
| 21 | Interview Process | — | 🔜 Coming soon |
| 22 | Non-Functional Requirements | — | 🔜 Coming soon |
| 23 | Trade-Offs to Know | — | 🔜 Coming soon |
| 24 | Other Important Topics | — | 🔜 Coming soon |
15 of 24 topics complete — 100 sub-topics available.