Practice
Solution
Step 1: Identify durability guarantees needed
In-memory queues and caches (A, D) risk data loss on crashes; relational DB (C) can block producers due to synchronous commits.Step 2: Evaluate Kafka's role
Kafka provides durable, replicated logs that persist to disk and decouple producers from slow consumers, ensuring no data loss.Final Answer:
Option A -> Option AQuick Check:
Kafka replication and disk persistence ensure durability without blocking [check]
Solution
Step 1: Identify Expiration Worker's role
It removes expired snippets to free storage and prevent stale data serving.Step 2: Trace failure impact without Expiration Worker
Expired snippets accumulate indefinitely, increasing storage and possibly serving stale content.Final Answer:
Option A -> Option AQuick Check:
Without expiration cleanup, storage bloat and stale data occur [check]
Solution
Step 1: Identify role of action item tracking
Tracking ensures follow-through on improvements, preventing recurrence and reducing blame.Step 2: Trace failure without tracking
Without tracking, accountability gaps appear, blame culture can worsen as no clear ownership exists.Final Answer:
Option D -> Option DQuick Check:
No tracking -> blame culture intensifies due to lack of ownership [check]
Solution
Step 1: Analyze scaling challenges per component
The PageRank cluster faces superlinear growth in graph edges, causing memory and CPU bottlenecks.Step 2: Compare other components
URL Frontier can shard with heuristics; query serving scales with caching; storage bandwidth scales better than PageRank compute.Final Answer:
Option D -> Option DQuick Check:
PageRank graph growth causes first bottleneck at 10x scale [check]
Solution
Step 1: Analyze component scalability at 10x traffic
Databases (A) and caches (D) can be scaled horizontally or sharded; load balancers (C) can be scaled or replaced with L4/L7 solutions.Step 2: Identify API servers as bottleneck
API servers maintaining stateful connections (e.g., WebSockets) are hard to shard or move; connection limits cause saturation and failure first.Final Answer:
Option D -> Option DQuick Check:
Stateful API servers hit connection limits first at scale [check]
