System Design Interview Questions
Scaling, CAP theorem, caching, sharding, Saga, CQRS, rate limiting, HA, and real-world design problems.
Showing 1–20 of 100
#1What is the difference between horizontal and vertical scaling?
#2Explain the CAP theorem.
#3What is consistent hashing and why is it used?
#4What is database sharding and how does it work?
#5Explain cache invalidation strategies.
#6How would you design a URL shortener (like bit.ly)?
#7What is the Saga pattern in microservices?
#8What is CQRS and when should you use it?
#9What are rate limiting algorithms?
#10What is the Circuit Breaker pattern?
#11How do you design for high availability?
#12What is eventual consistency?
#13What is a message queue and when should you use one?
#14What is the difference between SQL and NoSQL databases?
#15What is a CDN and how does it improve performance?
#16How do you handle distributed transactions without 2PC?
#17How would you design a notification system (push, email, SMS)?
#18What is the difference between REST and gRPC?
#19What is the Outbox Pattern?
#20How do you design a distributed cache layer?
Showing 1–20 of 100
Ask Aria about System Design
Sign in to chat with Aria
All 100 System Design questions at a glance
- What is the difference between horizontal and vertical scaling?(Easy)
- Explain the CAP theorem.(Medium)
- What is consistent hashing and why is it used?(Hard)
- What is database sharding and how does it work?(Hard)
- Explain cache invalidation strategies.(Medium)
- How would you design a URL shortener (like bit.ly)?(Medium)
- What is the Saga pattern in microservices?(Hard)
- What is CQRS and when should you use it?(Hard)
- What are rate limiting algorithms?(Hard)
- What is the Circuit Breaker pattern?(Medium)
- How do you design for high availability?(Hard)
- What is eventual consistency?(Medium)
- What is a message queue and when should you use one?(Medium)
- What is the difference between SQL and NoSQL databases?(Medium)
- What is a CDN and how does it improve performance?(Easy)
- How do you handle distributed transactions without 2PC?(Hard)
- How would you design a notification system (push, email, SMS)?(Medium)
- What is the difference between REST and gRPC?(Medium)
- What is the Outbox Pattern?(Hard)
- How do you design a distributed cache layer?(Hard)
- What is the difference between synchronous and asynchronous communication in microservices?(Medium)
- How do you design a notification system that sends 100M notifications per day?(Hard)
- What are the different types of database indexes and when do you use each?(Medium)
- How would you design a URL shortener like bit.ly?(Hard)
- What is eventual consistency and how do you handle it in practice?(Hard)
- How do you design a search system at scale?(Hard)
- What is the difference between optimistic and pessimistic locking?(Medium)
- How would you design a real-time leaderboard?(Medium)
- What is a write-ahead log (WAL) and how is it used?(Hard)
- How do you handle distributed transactions across microservices?(Hard)
- How do you design a chat application like WhatsApp?(Hard)
- What is a service mesh and when should you use one?(Hard)
- How would you design a video streaming platform like YouTube?(Hard)
- What is the difference between a load balancer and an API gateway?(Medium)
- How do you prevent and handle cascading failures in distributed systems?(Hard)
- What is the difference between a message queue and a message broker?(Medium)
- How do you design a rate limiter for an API?(Hard)
- What is the difference between replication and partitioning in databases?(Medium)
- How would you design Twitter's news feed?(Hard)
- What is observability and what are its three pillars?(Medium)
- What is the difference between SQL and NoSQL databases?(Easy)
- How do you implement idempotency in APIs?(Medium)
- How would you design a distributed job scheduler?(Hard)
- What is the Saga pattern vs 2PC for distributed transactions?(Hard)
- How do you design a file storage system like Dropbox?(Hard)
- What are the trade-offs of microservices vs monolithic architecture?(Medium)
- How does DNS work and how is it used in load balancing?(Medium)
- What is the strangler fig pattern?(Medium)
- How do you design an e-commerce inventory system that handles flash sales?(Hard)
- What is the difference between push and pull architectures for data?(Medium)
- What is a CDN and how does it work?(Easy)
- How do you design a fraud detection system?(Hard)
- What is event sourcing and how does it differ from CRUD?(Hard)
- How would you design a geospatial service like Uber's nearby driver system?(Hard)
- What is API versioning and what are the different strategies?(Medium)
- What is a Bloom filter and where is it used in system design?(Hard)
- How do you implement zero-downtime deployments?(Medium)
- What is the two-generals problem and what does it tell us about distributed systems?(Hard)
- How do you design a payment processing system?(Hard)
- What are the key principles of the SOLID design principles?(Easy)
- How would you design an autocomplete system?(Hard)
- What is backpressure and how do you handle it?(Medium)
- What is a time-series database and when should you use one?(Medium)
- What is a circuit breaker and how do you implement it?(Medium)
- How do you handle database migrations safely in production?(Medium)
- What is the CQRS pattern?(Hard)
- How do you secure an API at the architecture level?(Medium)
- What is the difference between synchronous replication and asynchronous replication?(Medium)
- How do you design a system for billions of events per day (analytics pipeline)?(Hard)
- What is chaos engineering and how do you implement it?(Medium)
- What is the database connection pool and how do you tune it?(Medium)
- How do you design an access control system?(Medium)
- How would you design an online code execution system like LeetCode?(Hard)
- What are SLOs, SLIs, and SLAs?(Easy)
- How does the request flow work in a typical microservices architecture?(Medium)
- What is a hot partition problem and how do you solve it?(Hard)
- How do you design a multi-tenant SaaS architecture?(Hard)
- What is tail latency and why does it matter?(Hard)
- What is the difference between availability and reliability?(Easy)
- How do you design a global, low-latency key-value store?(Hard)
- What is the N+1 query problem and how do you fix it?(Medium)
- How would you design a booking system like Airbnb?(Hard)
- What is the difference between a forward proxy and a reverse proxy?(Easy)
- What is the difference between stateful and stateless services?(Easy)
- How do you design a recommendation system?(Hard)
- What is the read-your-own-writes consistency guarantee?(Medium)
- How do you design a search-as-you-type / typeahead feature?(Medium)
- What is the difference between gRPC unary, server streaming, client streaming, and bidirectional streaming?(Medium)
- How do you handle large file uploads efficiently?(Medium)
- What are the key considerations when designing for high write throughput?(Hard)
- What is the difference between monolithic and microservices deployment strategies?(Medium)
- How do you design for disaster recovery?(Hard)
- What is the thundering herd problem?(Medium)
- What is a vector clock and how does it work?(Hard)
- What is the difference between a monorepo and polyrepo?(Medium)
- How do you ensure data consistency across microservices?(Hard)
- What is the difference between a batch job and a stream processing job?(Medium)
- How do you design an API for mobile clients vs web clients?(Medium)
- What is the role of a message broker in event-driven architecture?(Medium)
- How do you approach capacity planning for a new system?(Medium)