Practice
Solution
Step 1: Identify durability requirement
Durability requires persistent storage that survives crashes, ruling out volatile caches.Step 2: Match component to durability
Amazon S3 provides distributed, durable storage with replication and fault tolerance, fitting the requirement.Final Answer:
Option D -> Option DQuick Check:
Persistent storage ensures data survives crashes [check]
Solution
Step 1: Trace request router behavior on shard failure
Retrying the same shard (The router retries the same shard until it recovers before forwarding the request) blocks requests; returning error (The router returns an error immediately to the client indicating shard unavailability) reduces availability; next clockwise shard (The router uses the next clockwise shard on the hash ring as a fallback for the key) is correct only if the ring is intact and shard failure is handled by virtual nodes.Step 2: Understand fallback hashing
Rehashing with a different function (The router hashes the key again with a different hash function to find another shard) is a common fallback to find an alternate shard when the primary is down, ensuring availability without blocking or errors.Final Answer:
Option D -> Option DQuick Check:
Fallback hashing finds alternate shard on failure [check]
Solution
Step 1: Analyze A/B testing constraints
Minimal latency impact and controlled traffic routing are key.Step 2: Evaluate architectures
Duplicating traffic synchronously (A) doubles latency; DNS switching (C) is slow and coarse-grained; embedding model logic in Feature Store (D) mixes concerns and complicates feature retrieval. Feature flag routing (B) allows asynchronous, fine-grained control with minimal latency impact.Final Answer:
Option A -> Option AQuick Check:
Feature flag routing -> low latency, flexible A/B testing [check]
Solution
Step 1: Analyze team size and feature velocity constraints
Small teams benefit from simpler architectures to reduce overhead and speed delivery.Step 2: Evaluate operational complexity of microservices
Microservices add deployment and operational complexity, which can slow small teams.Final Answer:
Option B -> Option BQuick Check:
Monolith reduces complexity, speeds delivery for small teams [check]
Solution
Step 1: Analyze scaling impact on components
Network bandwidth is low since only fixed-size sketches are transferred, not raw IDs; register size is fixed and does not fail but accuracy degrades slightly.Step 2: Identify bottleneck
The aggregator merges many sketches concurrently, increasing CPU load and latency, making it the first to fail under 10x load.Final Answer:
Option A -> Option AQuick Check:
Aggregator CPU-bound merging many sketches first bottleneck [check]
