Practice
Solution
Step 1: Identify eviction based on time expiration
TTL eviction removes cache entries strictly after a fixed time, independent of access patterns.Step 2: Eliminate other policies
LRU and LFU depend on access recency or frequency, not fixed time. ARC adapts between recency and frequency but does not enforce fixed expiration.Final Answer:
Option C -> Option CQuick Check:
TTL evicts by fixed time, ignoring usage patterns [check]
Solution
Step 1: Analyze latency and accuracy requirements
Near real-time updates require continuous stream processing rather than batch or polling.Step 2: Evaluate each architecture against these requirements
Batch processing (A) and hourly rollups (D) are too slow; polling (C) introduces latency and load spikes; stream processing (B) provides continuous, low-latency computation.Final Answer:
Option C -> Option CQuick Check:
Stream processing -> continuous, low-latency error budget updates [check]
Solution
Step 1: Evaluate coordination overhead
Consensus (A) ensures strong consistency but adds latency and limits throughput; DB auto-increment with sharding (D) risks collisions and complex coordination.Step 2: Assess ordering and uniqueness
UUIDs (C) are unique but unordered and can cause issues in ordered systems; Ticket Server (B) balances uniqueness, ordering, and throughput by allocating ID blocks.Final Answer:
Option C -> Option CQuick Check:
Ticket Server -> high throughput, low latency, ordered IDs [check]
Solution
Step 1: Analyze artifact registry scaling challenges
At 10x scale, artifact volume grows massively, increasing storage needs and retrieval latency, stressing the registry's throughput and storage backend.Step 2: Compare other components
Test runner scales with parallelism; orchestrator is stateless or sharded; rollback manager writes are less frequent and can be batched.Final Answer:
Option A -> Option AQuick Check:
Artifact registry storage and latency bottleneck at scale [check]
Solution
Step 1: Identify stateful components at scale
Driver assignment maintains WebSocket connections, which are stateful and tied to server memory.Step 2: Analyze scaling bottlenecks
WebSocket connections cannot be easily sharded or moved; adding servers doesn't migrate existing connections, causing resource exhaustion.Step 3: Compare other components
Databases (A) can be sharded; caches (C) can evict; notification services (D) can batch or retry.Final Answer:
Option C -> Option CQuick Check:
Stateful WebSocket connections -> driver assignment service bottleneck [check]
