Practice
Solution
Step 1: Understand visibility timeout semantics
Visibility timeout hides the message during processing; if not acknowledged, it reappears for redelivery.Step 2: Analyze options
Immediate deletion (A) risks data loss; archiving without retry (C) prevents recovery; dead-letter queue (D) is for failed retries, not timeout expiry.Final Answer:
Option D -> Option DQuick Check:
Visibility timeout expiry -> message reappears for retry [check]
Solution
Step 1: Identify the need for asynchronous buffering
Millions of concurrent updates require decoupling ingestion from processing to avoid bottlenecks.Step 2: Evaluate component suitability
Relational DB (A) causes high contention and latency; Redis (C) is volatile and not durable; synchronous API calls (D) block and reduce throughput. Kafka (B) provides durable, ordered, and scalable buffering.Final Answer:
Option D -> Option DQuick Check:
Kafka buffers high-throughput writes asynchronously with durability [check]
Solution
Step 1: Understand Kafka's role in decoupling and durability
Kafka buffers messages asynchronously, preventing blocking and enabling retries.Step 2: Trace failure without Kafka
Without Kafka, Alice's server must synchronously contact Bob's server. If Bob's server is slow or crashes, Alice's send blocks or message is lost with no retry.Final Answer:
Option B -> Option BQuick Check:
Without Kafka, synchronous send blocks and loses messages on Bob's server crash [check]
Solution
Step 1: Analyze scaling bottlenecks
Model storage (A) scales with caching; Kafka (C) can be scaled by adding partitions; load balancers (D) scale horizontally.Step 2: Identify CPU bottleneck in inference
Prediction API servers (B) perform CPU/GPU-bound inference; scaling is limited by hardware and model complexity, causing first failure under 10x load.Final Answer:
Option D -> Option DQuick Check:
Inference servers hit CPU/GPU limits before storage or Kafka scale [check]
Solution
Step 1: Understand Bloom filter scaling behavior
Bloom filter false positive rate increases with scale unless filter size grows proportionally, causing more backend queries.Step 2: Analyze component failure likelihood
Backend (A) fails eventually but Bloom filter inefficiency causes overload first. Network (C) and cache (D) are bottlenecks but secondary to Bloom filter false positive explosion.Final Answer:
Option C -> Option CQuick Check:
Bloom filter false positives grow with scale, triggering backend overload first [check]
