System Design
Design scalable systems: load balancing, caching, microservices, and distributed architecture.
Open-ended system design questions intentionally lack clarity. They expose whether a candidate defaults to patterns or first establishes constraints, evaluates trade-offs, and narrows the problem space deliberately.
The topics below focus on building a precise mental model of scale, caching strategies, boundaries, and failure modes—so you can turn an underspecified problem into a coherent design, defend your decisions, and articulate the reasoning behind them when stakes are high.
Topics in this category
Horizontal vs Vertical Scaling
Read →Understand the difference between horizontal (scale-out) and vertical (scale-up) scaling, their trade-offs, and when to use each approach.
Load Balancing for System Design Interviews
Read →Interview-focused load balancing: L4 vs L7, health checks, algorithms, and scaling/reliability trade-offs.
Caching Strategies for System Design Interviews
Read →Caching patterns and trade-offs for interviews: invalidation, consistency, multi-layer caches, and failure modes.
Redis Caching: Patterns, Consistency & Performance at Scale
Read →Use Redis for caching: keys/TTLs, invalidation strategies, replication, clustering, hot keys, and cache stampede prevention.
Database Sharding
Read →Master database sharding strategies: horizontal partitioning, shard key selection, cross-shard queries, rebalancing, and handling failures in sharded systems.
Consistent Hashing
Read →Learn consistent hashing for distributed systems. Understand how it enables efficient data distribution, handles node failures, and minimizes data movement duri
Replication Strategies: Sync vs Async, Lag & Failover
Read →Master replication models (primary-replica, multi-primary), sync vs async trade-offs, replication lag, read consistency, and failover.
Indexing Strategies
Read →Learn database indexing strategies: B-tree, hash indexes, composite indexes, covering indexes, and how to design indexes for optimal query performance.
CAP Theorem
Read →Master the CAP theorem: understand why you can only guarantee two of Consistency, Availability, and Partition tolerance. Learn real-world trade-offs and example
Monolith vs Microservices
Read →Compare monolithic and microservices architectures. Understand when to choose each, migration strategies, and the trade-offs involved in architectural decisions
Microservices Architecture
Read →Master microservices architecture: service decomposition, communication patterns, data management, deployment strategies, and challenges like distributed transa
API Gateways
Read →Understand API gateways as the single entry point for microservices. Learn routing, authentication, rate limiting, request/response transformation, and circuit
Message Queues (Kafka, RabbitMQ)
Read →Compare message queue systems: Kafka for event streaming vs RabbitMQ for traditional messaging. Learn use cases, patterns, and when to choose each.
Event-Driven Architecture
Read →Master event-driven architecture: event sourcing, CQRS, event streaming, event choreography vs orchestration, and building scalable event-driven systems.
Circuit Breaker Pattern
Read →Learn the circuit breaker pattern for fault tolerance. Understand states (closed, open, half-open), implementation, and preventing cascading failures.
Retries & Backoff: Exponential, Jitter, Timeouts & Idempotency
Read →Design safe retries: exponential backoff + jitter, timeouts, idempotency, circuit breaking, and avoiding retry storms.
Rate Limiting: Token Bucket, Sliding Window & Distributed Trade-offs
Read →Learn rate limiting algorithms (token/leaky bucket, sliding window), distributed enforcement, Redis patterns, and common failure modes.
CDN Design
Read →Understand Content Delivery Networks (CDNs), how they reduce latency, edge caching strategies, cache invalidation, and designing a CDN architecture.
Reverse Proxying: TLS Termination, Routing, Caching & Security
Read →Understand reverse proxies (Nginx/Envoy): TLS termination, routing, load balancing, caching, auth, and common deployment patterns.
High Availability
Read →Design for high availability: redundancy, failover strategies, health checks, circuit breakers, and achieving 99.9%+ uptime in distributed systems.
REST vs GraphQL: API Design Trade-offs & Best Practices
Read →Compare REST and GraphQL for real APIs: performance, caching, versioning, schema evolution, and operational complexity.
CQRS
Read →Master CQRS (Command Query Responsibility Segregation): separate read and write models, when to use it, and implementation patterns.
Event Sourcing
Read →Learn event sourcing: storing state changes as events, rebuilding state, event replay, and when event sourcing is the right choice.
Saga Pattern: Distributed Transactions, Orchestration & Recovery
Read →Learn sagas for distributed transactions: choreography vs orchestration, compensations, idempotency, and failure handling.