đź“Ś System Design Key Concepts
- Scalability
- Latency vs Throughput
- CAP Theorem
- ACID Transactions
- Consistent Hashing
- Rate Limiting
- API Design
- Strong vs Eventual Consistency
- Synchronous vs. asynchronous communications
- REST vs RPC
- Batch Processing vs Stream Processing
- Fault Tolerance
- Consensus Algorithms
- Gossip Protocol
- Service Discovery
- Disaster Recovery
- Distributed Tracing
- Top 15 Tradeoffs
🛠️ System Design Building Blocks
- Vertical vs Horizontal Scaling
- Databases
- Content Delivery Network (CDN)
- Domain Name System (DNS)
- Caching
- Distributed Caching
- Load Balancing
- SQL vs NoSQL
- Database Index
- Consistency Patterns
- HeartBeats
- Circuit Breaker
- Idempotency
- Database Scaling
- Data Replication
- Data Redundancy
- Database Sharding
- Database Architectures
- Microservices Guidelines
- Failover
- Proxy Server
- Message Queues
- WebSockets
- Bloom Filters
- API Gateway
- Distributed Locking
- Checksum
🖇️ System Design Architectural Patterns
- Client-Server Architecture
- Microservices Architecture
- Serverless Architecture
- Event-Driven Architecture
- Peer-to-Peer (P2P) Architecture
âś… How to Answer a System Design Interview Problem
Read the Full Article
đź“ś Must-Read Engineering Articles
- How Discord stores trillions of messages
- Building In-Video Search at Netflix
- How Canva scaled Media uploads from Zero to 50 Million per Day
- How Airbnb avoids double payments in a Distributed Payments System
- Stripe’s payments APIs - The first 10 years
- Real time messaging at Slack
🗞️ Must-Read Distributed Systems Papers
- Paxos: The Part-Time Parliament
- MapReduce: Simplified Data Processing on Large Clusters
- The Google File System
- Dynamo: Amazon’s Highly Available Key-value Store
- Kafka: a Distributed Messaging System for Log Processing
- Spanner: Google’s Globally-Distributed Database
- Bigtable: A Distributed Storage System for Structured Data
- ZooKeeper: Wait-free coordination for Internet-scale systems
- The Log-Structured Merge-Tree (LSM-Tree)
- The Chubby lock service for loosely-coupled distributed systems