In a distributed system, why does spreading components across multiple machines improve fault tolerance?
Think about what happens when one part of a system stops working.
Distributing components means the system does not rely on a single machine. If one fails, others keep the system running, improving fault tolerance.
Which explanation best describes how data partitioning (sharding) helps a distributed system scale?
Consider how dividing work helps handle more users or data.
Partitioning data spreads it across machines, so each handles a smaller portion. This allows the system to handle more data and users by working in parallel.
What is a key tradeoff when choosing eventual consistency over strong consistency in a distributed system?
Think about the balance between data freshness and system uptime.
Eventual consistency allows the system to stay available even if some nodes are slow or disconnected, but data may not be instantly up-to-date everywhere.
Which option best explains how load balancing helps a distributed system handle more users efficiently?
Consider how spreading work helps avoid slowdowns.
Load balancing spreads requests evenly, so no server is overwhelmed. This keeps response times low and improves overall system performance.
You design a distributed messaging system expected to handle 1 million messages per minute. Each message is 1 KB. What is the minimum network bandwidth in Mbps needed to support this load without delay?
Calculate total data per second and convert bytes to bits.
1 million messages/min = 1,000,000 / 60 ≈ 16,667 messages/sec. Each message is 1 KB = 1024 bytes = 8192 bits. Total bits per second = 16,667 * 8192 ≈ 136,533,333 bits/sec ≈ 134 Mbps (rounded).
