Practice
Solution
Step 1: Identify lock service role in reservation flow
The lock service ensures exclusive access to room inventory during reservation to prevent double booking.Step 2: Trace failure impact
Without the lock service, Inventory cannot reliably mark rooms as unavailable, leading to stale or incorrect availability states shown to users (Inventory service marks rooms as available incorrectly, causing UI to show wrong availability). Reservations may still proceed but with inconsistent inventory state. Blocking indefinitely (Reservation requests block indefinitely waiting for locks, causing user timeouts and failed bookings) is unlikely as fallback mechanisms exist. Payment processing (Payment processing fails because it depends on the lock service for transaction ordering) is independent of locking. Double bookings (Reservations proceed normally but double bookings increase due to lack of coordination) may increase but the immediate failure is incorrect inventory state.Final Answer:
Option C -> Option CQuick Check:
Lock service failure causes stale inventory availability state [check]
Solution
Step 1: Understand durability impact on vector storage
Without persistence, recent inserts are lost on crash, but existing index data remains intact.Step 2: Analyze index rebuild behavior
HNSW index rebuilds from last persisted snapshot, so it uses stale data but does not corrupt links.Final Answer:
Option A -> Option AQuick Check:
Index rebuild uses stale data; recent inserts lost but no corruption [check]
Solution
Step 1: Compare update latency and query freshness trade-offs
Batch rebuilds have high latency; synchronous writes hurt write throughput; static monthly refresh is too stale.Step 2: Identify near-real-time indexing benefits
Streaming updates asynchronously balances freshness and throughput, allowing queries to see recent changes with low delay.Final Answer:
Option A -> Option AQuick Check:
Near-real-time streaming -> balanced freshness and update latency [check]
Solution
Step 1: Identify DAU Estimator role
DAU Estimator provides daily active user count critical for bandwidth calculations as bandwidth depends on total active users.Step 2: Eliminate other options
The system cannot estimate peak QPS, causing under-provisioning of servers is incorrect because peak QPS depends on instantaneous requests, not just DAU; Storage estimation becomes inaccurate because DAU is a key multiplier for daily data volume is partially true but storage depends more on total objects, not DAU alone; User authentication fails because DAU tracks active sessions is unrelated to authentication.Final Answer:
Option A -> Option AQuick Check:
Bandwidth depends directly on DAU for total data transfer [check]
Solution
Step 1: Identify stateful bottlenecks at scale
Chat servers hold WebSocket connections in memory, which are stateful and tied to specific servers, limiting horizontal scaling.Step 2: Compare other components
Databases can be sharded; Kafka scales with partitions; presence service caches can be distributed; chat servers' stateful connections are the hardest to shard.Final Answer:
Option A -> Option AQuick Check:
Stateful WebSocket connections -> chat servers bottleneck at 10x scale [check]
