System Design Cheatsheet
Essential system design patterns, architectures, and best practices for building scalable and reliable systems.
Architecture Patterns
MonolithicSingle application with all components tightly coupled
MicroservicesIndependent services communicating via APIs
Event-DrivenServices communicate through events and messages
ServerlessFunctions as a service, no server management
CQRSCommand Query Responsibility Segregation
Scalability
Horizontal ScalingAdd more machines to distribute load
Vertical ScalingAdd more resources to existing machine
Load BalancingDistribute traffic across multiple servers
CachingStore frequently accessed data in memory
Database ShardingSplit database into smaller parts
High Availability
Active-ActiveMultiple active nodes serving traffic
Active-PassiveOne active node, others on standby
FailoverAutomatic switch to backup system
ReplicationCopy data across multiple nodes
Circuit BreakerPrevent cascading failures
Data Management
ACIDAtomicity, Consistency, Isolation, Durability
BASEBasically Available, Soft state, Eventually consistent
CAP TheoremConsistency, Availability, Partition tolerance
Eventual ConsistencyData will be consistent eventually
Strong ConsistencyData is consistent immediately
Security
OAuth 2.0Authorization framework
JWTJSON Web Tokens for authentication
HTTPSSecure communication over TLS
Rate LimitingLimit requests per user/IP
CORSCross-Origin Resource Sharing
Performance
CDNContent Delivery Network
Database IndexingOptimize query performance
Connection PoolingReuse database connections
Asynchronous ProcessingHandle tasks in background
CompressionReduce data transfer size