System Design interview questions
46 System Design interview questions with answers, from junior to mid level.
Foundations
Core
- Horizontal vs vertical scaling?
- What does a CDN mainly provide?
- What does a load balancer do?
- Why does a cache make reads faster?
- In the client-server model, which is true?
- Latency vs throughput?
- Monolith vs microservices?
- Why put a message queue between an order service and an email service?
- What does DNS do?
- What is a single point of failure (SPOF)?
- What is the main purpose of running several copies (replicas) of a service or database?
- What is a reverse proxy (e.g. Nginx in front of your app)?
Intermediate
- Requests have very different durations (some take seconds). Which load balancing strategy adapts best?
- In the cache-aside (lazy loading) pattern, who populates the cache?
- Write-through caching means…
- According to the CAP theorem, during a network partition a distributed system must choose between…
- A 6-person startup with one product debates microservices. The strongest argument against starting with them?
- Which is a typical responsibility of an API gateway?
- In leader-follower (primary-replica) replication, where do writes go?
- 1M daily active users each make 10 requests per day. Average QPS?
- Why keep application servers stateless?
- The three pillars of observability are…
- A 99.9% monthly availability SLO allows roughly how much downtime per 30-day month?
- A chat app needs the server to push messages instantly to clients. Most suitable transport?
- Blue-green deployment means…
- What framework do you follow in a 45-minute system design interview?
- Design a URL shortener (like bit.ly).
- Design a parking lot system (object-oriented design).
Advanced
- A popular cache key expires and thousands of requests hit the DB at once. This is…
- Why use consistent hashing to distribute keys across cache nodes?
- Key difference between Kafka and a traditional queue like RabbitMQ?
- A message broker guarantees at-least-once delivery. What must consumers do?
- A downstream service is failing and timing out. Which pattern stops your service from hammering it and failing slowly?
- CQRS means…
- Design a rate limiter for an API.
- Design a chat application (like WhatsApp).
- Design a news feed (like the Twitter/X home timeline).
- Design a file storage and sync service (like Dropbox).
- Design a notification system (email, SMS, push).
- Design a distributed job scheduler (run tasks at a given time or on a cron).