System Design
118 highly-curated topics available for revision.
1. Fundamentals
Scalability
HighGrowing your system to handle increased load.
Availability
HighKeeping your system alive and accessible.
Reliability vs Availability
MediumWhy a system can be available but totally unreliable.
Latency vs Throughput
HighThe two primary metrics of system performance.
The CAP Theorem
HighThe fundamental trade-off in distributed databases.
The PACELC Theorem
MediumThe modern extension to the CAP Theorem.
2. API & Architecture
RESTful API Design
HighThe universal language of the web.
GraphQL vs REST
HighWhy Facebook reinvented data fetching.
API Gateways
HighThe bouncer at the club.
Microservices vs Monolith
HighThe great architectural debate.
Service Mesh
Managing the chaos of microservice communication.
Rate Limiting
HighProtecting your API from abusive traffic.
Load Shedding
MediumIntentionally dropping traffic to save the system.
3. SOLID Principles
Introduction to SOLID
HighWhat are SOLID principles and why do they matter?
Single Responsibility Principle (SRP)
HighA class should have one, and only one, reason to change.
Open/Closed Principle (OCP)
HighSoftware entities should be open for extension, but closed for modification.
Liskov Substitution Principle (LSP)
MediumSubtypes must be perfectly substitutable for their base types.
Interface Segregation Principle (ISP)
MediumClients should not be forced to depend on methods they do not use.
Dependency Inversion Principle (DIP)
HighHigh-level modules should not depend on low-level modules; both should depend on abstractions.
4. Design Patterns
Introduction to Design Patterns
HighThe blueprints of software architecture.
Singleton Pattern
HighThere can be only one.
Factory Pattern
HighThe object assembly line.
Observer Pattern
HighSubscribe and be notified.
Strategy Pattern
MediumSwapping the engine mid-flight.
Decorator Pattern
MediumThe Russian Nesting Dolls.
Facade Pattern
HighHiding the spaghetti.
Adapter Pattern
MediumThe universal translator.
Proxy Pattern
The bodyguard.
Command Pattern
MediumTurning actions into objects.
Iterator Pattern
Walking the collection.
State Pattern
MediumThe finite state machine.
5. Load Balancing
Load Balancing
HighDistributing traffic across multiple servers.
Load Balancing Algorithms
MediumHow the Load Balancer decides where to send traffic.
Reverse Proxy
HighThe bodyguard that sits in front of your servers.
Consistent Hashing
HighFixing the fatal flaw of standard load balancer hashing.
Service Discovery
MediumHow microservices find each other in a dynamic cloud.
6. Caching
Caching
HighTrading RAM for speed.
Caching Strategies
HighHow to read and write to your cache without data corruption.
Cache Eviction Policies
MediumHow to decide what to delete when RAM is full.
Redis vs Memcached
Choosing the right engine for your distributed cache.
Distributed Caching
MediumScaling your cache across multiple servers.
7. CDN & Edge
8. Databases
SQL vs NoSQL
HighChoosing the right database for the job.
Database Indexing
HighHow databases find data without scanning the entire disk.
Database Replication
HighDuplicating data across servers for availability and read scaling.
Database Sharding
HighScaling writes by splitting the database into pieces.
Sharding Strategies
MediumHow to mathematically distribute your data.
ACID Transactions
HighThe gold standard for database reliability.
BASE Transactions
MediumTrading absolute correctness for massive scalability.
Graph Databases
Optimized for highly connected, relational data.
Time-Series Databases (TSDB)
Built exclusively for handling massive streams of timestamped data.
9. Storage
10. Messaging
Message Queues
HighDecoupling systems through asynchronous processing.
Publish-Subscribe (Pub/Sub)
HighBroadcasting messages to multiple listeners.
RabbitMQ vs Kafka
HighChoosing the right event broker.
Event-Driven Architecture (EDA)
HighReacting to things that have already happened.
Event Sourcing
MediumStoring the journey, not just the destination.
CQRS
HighSplitting reads from writes for ultimate optimization.
11. Real-Time
Polling vs WebSockets
HighHow to push data from the server to the client.
Server-Sent Events (SSE)
MediumThe lightweight alternative to WebSockets.
Webhooks
HighServer-to-Server push notifications.
GraphQL Subscriptions
Real-time updates tailored exactly to the client's needs.
gRPC
MediumThe modern, high-speed alternative to REST.
WebRTC
MediumBrowser-to-Browser, skipping the server entirely.
12. Distributed Systems
Distributed Systems
HighMultiple computers acting as one.
Consistency Models
HighHow strictly do we keep our data synchronized?
Eventual Consistency in Depth
MediumHow to actually build systems that are eventually consistent.
Replication in Distributed Systems
HighKeeping data synchronized across the network.
Leader-Follower Replication
HighThe most common replication architecture.
Leader Election
HighHow a cluster decides who is in charge.
Distributed Consensus
MediumGetting computers to agree when they don't trust the network.
Quorum
HighThe mathematical rule of majorities in distributed systems.
Distributed Transactions
HighACID guarantees across multiple microservices.
Two-Phase Commit (2PC)
MediumThe brutal, synchronous way to achieve distributed consistency.
Database Failover
HighSurviving the death of the primary database.
13. Distributed Data Structures
14. Search
Elasticsearch
HighThe distributed engine behind modern search.
The Inverted Index
HighThe data structure that makes search engines fast.
Fuzzy Search
MediumHandling typos and misspellings like a pro.
Vector Search (AI Search)
HighSearching by meaning, not by matching keywords.
TF-IDF & BM25
How search engines decide what is relevant.
15. Security
HTTPS & TLS
HighSecuring data in transit across the public internet.
JWT & OAuth
HighStateless authentication and third-party authorization.
CORS (Cross-Origin Resource Sharing)
MediumThe browser's most misunderstood security feature.
SQL Injection & XSS
HighThe two most common ways to hack an application.
DDoS Protection
MediumSurviving a distributed attack on your infrastructure.
16. Reliability
Circuit Breakers
HighFailing fast to prevent catastrophic cascading failures.
Retries & Exponential Backoff
HighHandling the chaos of unreliable networks.
Graceful Degradation
MediumFailing without the user noticing.
Disaster Recovery
MediumWhen the entire data center burns down.
17. Observability
Logging, Metrics & Tracing
HighThe Three Pillars of Observability.
Distributed Tracing
HighFollowing a request through the microservice maze.
Prometheus & Grafana
MediumThe industry standard for metrics and dashboards.
The ELK Stack
HighHow to aggregate and search millions of logs.
Alerts & On-Call
MediumWaking up engineers at 3:00 AM.
18. Interview Problems
Design TinyURL
HighThe classic system design warm-up.
Design Twitter (X)
HighThe ultimate fan-out architecture challenge.
Design WhatsApp
HighReal-time communication at a global scale.
Design Uber
HighConnecting riders and drivers using Geo-Spatial Data.
Design Netflix
HighStreaming massive video files across the globe.
Design Ticketmaster
HighManaging extremely high-concurrency transactions.
Design a Web Crawler
MediumDownloading the entire internet.
Design a Rate Limiter
HighProtecting APIs at massive scale.
Design a Key-Value Store
HighBuilding the backbone of distributed systems.
Design YouTube
HighStoring and streaming petabytes of user-generated content.
Design Google Docs
HighReal-time collaborative editing without destroying data.
Design a News Feed (Facebook)
HighThe ultimate data aggregation challenge.
Design Search Autocomplete
MediumTypeahead suggestions in under 50 milliseconds.
Design a Distributed Cache
HighBuilding Redis from scratch.
Design Amazon S3
HighBuilding a global Object Storage system.
Design a Payment System
HighMoving money without losing a single cent.