Practice
Solution
Step 1: Identify the role of the load balancer
The load balancer manages client connections and distributes incoming requests evenly across backend servers to prevent overload.Step 2: Eliminate other components
The database server handles data storage but does not manage client connections; cache servers speed up data retrieval but don't handle connections; message queues buffer asynchronous tasks but don't manage live client connections.Final Answer:
Option B -> Option BQuick Check:
Load balancer routes client requests to backend servers [check]
Solution
Step 1: Trace synchronous call behavior at step 3
Order Service calls Inventory Service synchronously, so it waits for response before replying to client.Step 2: Analyze impact of slow Inventory Service
Because of synchronous call, client request blocks until Inventory Service responds or times out; no immediate return or retries happen automatically.Final Answer:
Option D -> Option DQuick Check:
Synchronous calls block caller until response or timeout [check]
Solution
Step 1: Analyze latency and freshness trade-offs
Centralized ranking with global profiles (A) adds network latency; caching (C) adds complexity and stale data risk.Step 2: Evaluate distributed ranking with local profiles
Distributed ranking co-located with Trie shards (B) reduces latency by local data access, tolerating eventual consistency for freshness.Final Answer:
Option B -> Option BQuick Check:
Distributed ranking + local profiles -> low latency, eventual consistency [check]
Solution
Step 1: Understand health check module role
Health checks detect unhealthy servers; without them, no updates occur to remove bad servers.Step 2: Trace routing behavior without health checks
Load balancer routes to all servers indiscriminately, including unhealthy ones, causing client errors.Final Answer:
Option D -> Option DQuick Check:
No health checks -> no removal of unhealthy servers -> client errors [check]
Solution
Step 1: Analyze Redis cache behavior under 10x load
Increased load causes Redis memory pressure, triggering eviction storms and latency spikes.Step 2: Compare Redis failure risk to DynamoDB and other components
DynamoDB scales well with partitioning; network and app servers scale horizontally; Redis memory is stateful and harder to scale quickly.Final Answer:
Option A -> Option AQuick Check:
Redis memory pressure -> eviction storms -> latency spikes first at scale [check]
