π System Design
IMPORTANT
βThere is no solution, there are only tradeoffs.β β Thomas Sowell (Commonly quoted in System Design)
Welcome to the System Design notes repository. Here youβll find concepts, patterns, technologies, and step-by-step case studies for designing scalable, reliable, and maintainable software systems.
π§ Core Concepts
Fundamental concepts and architecture principles.
- Approach: 0. How to Deliver Answer
- Overview: 1. Core Concepts
- Requirements: 2. FRs vs NFRs
- Theory: 3. CAP Therom
- Design: 4. API Design
- Distribution: 5. Consistent hasing
- Scaling & Storage: 6. Sharding
- Communication: 7. Long Polling vs SSE vs Web Socket
- Glossary: 8. SD Words List
ποΈ Data Structures
π οΈ Technologies
Various infrastructure components, databases, and message brokers.
- Caching & Key-Value: 1. Redis | 12. Cache
- Search Engine: 2. Elasticsearch
- Event-Driven: 3. Event Driven Arch (EDA)
- Message Brokers: 4. Message Queue | 5. Kafka | 6. RabbitMQ | 7. Kafka vs RabbitMQ
- Routing & Networking: 8. RP vs LB vs GWs | 9. Load Balancer | 10. API Gateway
- Data Integration: 11. CDC
- Storage: 13. BLOB
- Interesting Topics: 1. DRM
π Patterns
Common architectural patterns for handling system load.
π Case Studies & Questions
Deep dives into designing real-world systems.
- Booking systems: 0. Ticket Master
- URL Shortener: 1. Bit.ly
- Storage & Sync: 2. Dropbox
- Social Media: 3. FB News Feed
- Real-Time Matches: 4. Tinder
- Online Judge: 5. Leetcode
- Messaging: 6. Whatsapp