Practice
Solution
Step 1: Understand Kafka's offset commit behavior
Kafka retains messages until consumers commit offsets. If the worker crashes before committing, messages remain available for reprocessing.Step 2: Analyze crash timing
Since the worker crashed before writing summaries and committing offsets, raw events remain in Kafka and will be reprocessed after restart.Final Answer:
Option A -> Option AQuick Check:
Kafka retains uncommitted messages for reprocessing [check]
Solution
Step 1: Understand stale slot cache impact
Stale cache causes client to send requests to nodes no longer responsible or down.Step 2: Trace failure consequences
Requests to failed nodes time out or fail; client does not receive MOVED errors because node is down (Client requests are sent to a failed node, causing timeouts and request failures).Final Answer:
Option D -> Option DQuick Check:
Stale cache -> requests to failed nodes -> timeouts/failures [check]
Solution
Step 1: Understand Kafka's role
Kafka buffers rating events asynchronously, decoupling ingestion from embedding updates.Step 2: Trace failure impact
If Kafka is down, producers cannot send events; embedding service may buffer events in memory temporarily but lacks durable queue, leading to memory exhaustion (C). Immediate loss (A) is incorrect because producers typically retry; blocking (B) is unlikely as embedding service consumes asynchronously; fallback DB (D) is not part of design.Final Answer:
Option D -> Option DQuick Check:
Kafka down -> embedding service buffers in memory -> OOM risk [check]
Solution
Step 1: Trace failure impact of Duplicate Detection silent failure
Without filtering, duplicate URLs flood the system causing repeated fetches.Step 2: Eliminate other options
Scheduler overload is secondary; Politeness Policy unaffected by duplicates; URL Frontier typically handles duplicates gracefully.Final Answer:
Option D -> Option DQuick Check:
Duplicate Detection failure causes repeated URL fetches [check]
Solution
Step 1: Analyze component scaling characteristics
Load Balancers typically handle stateless TCP connections and can be scaled horizontally; Reverse Proxies cache but can be scaled with eviction policies; DNS load balancing is not a runtime bottleneck.Step 2: Identify CPU-intensive bottleneck
API Gateway performs authentication, rate limiting, and transformations per request, which are CPU and memory intensive and harder to scale linearly.Final Answer:
Option A -> Option AQuick Check:
API Gateway CPU load scales with request complexity, causing bottleneck [check]
