Distributed systems design covering CAP theorem, load balancing, caching strategies, message queues, database sharding, consistency patterns, circuit breakers, architectural patterns (microservices, event-driven, serverless), and 12 key tradeoffs. Use when designing distributed systems, evaluating infrastructure tradeoffs, choosing databases, or understanding scalability patterns.
license
MIT
metadata
{"author":"itzcull"}
Purpose
Provide comprehensive reference material on system design concepts. Covers building blocks, architectural patterns, key concepts, and tradeoffs for designing reliable distributed systems.
When to use
Designing a new distributed system or service
Choosing between architectural patterns (microservices, event-driven, serverless)
Evaluating database choices (SQL vs NoSQL, sharding, replication)
Understanding caching strategies and consistency models
Making scalability decisions (vertical vs horizontal, sync vs async)
Evaluating tradeoffs (latency vs throughput, strong vs eventual consistency)
Key concepts
CAP Theorem - consistency, availability, partition tolerance tradeoff
Idempotency - operations safe to retry
Circuit Breakers - prevent cascade failures
Eventual Consistency - temporary inconsistency for availability
Design for failure - distributed systems fail in partial, unpredictable ways
Related
Use the system-designer agent for interactive architectural decisions