🏗️

System Design MCQ

Test your System Design knowledge with 100 multiple choice questions covering fundamentals to advanced concepts, with instant feedback and explanations.

100 Questions 40 Beginner 40 Intermediate 20 Advanced
1

What is the primary goal of system design in software engineering?

2

What is the difference between "functional" and "non-functional" requirements?

3

What does "scalability" mean for a system?

4

What is the difference between "vertical scaling" and "horizontal scaling"?

5

What is a "load balancer" used for?

6

What is "caching" in system design?

7

What is a "database index" used for?

8

What is the difference between a SQL (relational) database and a NoSQL database?

9

What is an "API" in the context of system design?

10

What does "latency" mean in the context of system performance?

11

What does "throughput" measure in a system?

12

What is the purpose of a CDN (Content Delivery Network)?

13

What does "availability" mean for a system?

14

What is meant by a "single point of failure" (SPOF)?

15

What is "redundancy" in system design?

16

What is the role of a reverse proxy (e.g., Nginx) in a web architecture?

17

What is "replication" in the context of databases?

18

What is the difference between "synchronous" and "asynchronous" communication between services?

19

What is a "message queue" (e.g., RabbitMQ, SQS) used for?

20

What does "fault tolerance" mean for a system?

21

What is the purpose of a "health check" endpoint in a microservice?

22

What is a "monolithic" application architecture?

23

What is a "microservices" architecture?

24

Why might a system use "rate limiting"?

25

What is "DNS" (Domain Name System) responsible for?

26

What is the difference between "HTTP" and "HTTPS"?

27

What is "data partitioning" (sharding) in a database?

28

What is the purpose of a "queue" in a producer-consumer system?

29

What does it mean for an API to be "stateless"?

30

What is "vertical partitioning" of a database table?

31

What is the purpose of "logging" in a production system?

32

What is "monitoring" in the context of running systems in production?

33

What is an "SLA" (Service Level Agreement)?

34

What is the role of an "object storage" service (e.g., Amazon S3) in system design?

35

What is the difference between "read-heavy" and "write-heavy" systems, and why does it matter for design?

36

What is "polling" as a communication technique between a client and server?

37

What is a "WebSocket" used for?

38

What is the purpose of a "rate of growth" estimation (capacity planning) in system design interviews?

39

What is the purpose of "load testing" a system before launch?

40

What is the difference between a "session" and a "token" (e.g., JWT) for authentication?

1

What is the CAP theorem, and what trade-off does it describe for distributed systems?

2

What is the difference between "strong consistency" and "eventual consistency"?

3

What is "database sharding" and what is a common challenge it introduces?

4

What is the difference between "read replicas" and "sharding"?

5

What is a "cache eviction policy", and what does "LRU" stand for?

6

What is "cache invalidation" and why is it considered a hard problem?

7

What is the difference between "write-through" and "write-back" (write-behind) caching strategies?

8

What is the purpose of a "message broker" like Kafka or RabbitMQ in a microservices architecture?

9

What is "idempotency" in the context of API design, and why is it important for retries?

10

What is the difference between "horizontal" and "vertical" partitioning, and which generally scales better for very large systems?

11

What is the purpose of "consistent hashing" in distributed systems?

12

What is the role of an "API Gateway" in a microservices architecture?

13

What is "service discovery" and why is it needed in a dynamic microservices environment?

14

What is the "circuit breaker" pattern used for in distributed systems?

15

What is the purpose of "rate limiting" algorithms like the "token bucket" or "leaky bucket"?

16

What is the difference between "pessimistic locking" and "optimistic locking" in databases?

17

What is a "leader-follower" (master-slave) replication model in databases?

18

What is "multi-leader" (multi-master) replication, and what challenge does it introduce?

19

What is the purpose of "database connection pooling"?

20

What is "blue-green deployment"?

21

What is a "canary release"?

22

What is the role of a "bloom filter" in system design, and what is its key limitation?

23

What is the purpose of "database denormalization" in high-read systems, and what trade-off does it introduce?

24

What is "horizontal scaling" of stateless services typically paired with, to distribute incoming requests?

25

What is "event-driven architecture"?

26

What is the purpose of "database normalization" versus "denormalization" trade-off in system design?

27

What is the difference between "vertical" and "horizontal" autoscaling in cloud environments?

28

What is a "thundering herd" problem, and how can it be mitigated?

29

What is the purpose of "database transactions" with ACID properties?

30

What is the difference between "horizontal sharding by range" and "sharding by hash"?

31

What is the purpose of a "dead letter queue" (DLQ) in a messaging system?

32

What is "graceful degradation" in system design?

33

What is the difference between "push" and "pull" models for delivering updates (e.g., notifications)?

34

What is the purpose of "feature flags" (feature toggles) in system design and deployment?

35

What is a "hot partition" (hot key) problem in a sharded or partitioned system?

36

What is the purpose of "data sharding by tenant" in a multi-tenant SaaS application?

37

What is the difference between "synchronous replication" and "asynchronous replication" for databases?

38

Why might a system use "pagination" or "cursor-based pagination" for large result sets, and what advantage does cursor-based pagination have over offset-based?

39

What is the purpose of "request tracing" (distributed tracing) in a microservices system?

40

What is the trade-off of using a "single shared database" versus "database per service" in a microservices architecture?

1

When designing a globally distributed system requiring strong consistency for certain operations, what is a common architectural approach?

2

In designing a URL shortener (like bit.ly) at scale, what is a key consideration for generating unique short codes across distributed servers?

3

When designing a news feed system (like Twitter/Facebook) for users with millions of followers, what is the trade-off between "fan-out on write" and "fan-out on read"?

4

In a distributed system using the Raft consensus algorithm, what happens if the current leader becomes unreachable?

5

When designing a rate limiter for a distributed API gateway with multiple instances, why is a centralized store like Redis often used instead of in-memory counters on each instance?

6

What is "write amplification" in the context of LSM-tree-based storage engines (e.g., used in Cassandra, RocksDB)?

7

In designing a globally distributed key-value store, what does "quorum-based" reads and writes (e.g., R + W > N) achieve?

8

When designing a notification system that must guarantee "at-least-once" delivery, what complexity does this push onto downstream consumers?

9

In a large-scale search system, what is the purpose of an "inverted index", and why is it central to search performance?

10

What design challenge does "clock skew" introduce in distributed systems, and how do logical clocks (e.g., Lamport timestamps) help?

11

When designing a system for processing financial transactions that must never lose data, what role does a "write-ahead log" (WAL) play?

12

In designing a chat application supporting millions of concurrent users, why might "sticky sessions" with WebSocket connections create challenges for horizontal scaling?

13

What is the significance of "idempotency keys" when designing a payment processing API?

14

When designing a globally distributed file storage system (like Google Drive or Dropbox), what is a key challenge in handling concurrent edits to the same file from multiple devices?

15

What is the purpose of "backpressure" mechanisms in a streaming data pipeline, and what can happen if they are absent?

16

In a microservices architecture, what is the "saga pattern" used for, and how does it differ from a traditional distributed transaction?

17

When scaling a relational database vertically reaches its limits, and sharding introduces too much complexity for a team, what is a common intermediate strategy?

18

What is the role of "vector clocks" in detecting conflicting concurrent updates in a distributed system?

19

When designing a system to handle "hot spots" in a sharded database where one shard receives disproportionate traffic, what is an effective mitigation beyond simply re-sharding?

20

In a system using event sourcing, what is the trade-off of storing every state change as an immutable event rather than just the current state?