Practice
Solution
Step 1: Understand reconciliation service role
It ensures debit and credit entries match before confirming transactions to users.Step 2: Analyze failure impact
Blocking all transactions (B) reduces availability unnecessarily; silent accumulation (A) risks unnoticed errors; committing debit only (D) breaks double-entry. Marking transactions pending (C) delays confirmation but preserves consistency.Final Answer:
Option A -> Option AQuick Check:
Pending status delays confirmation -> preserves ledger integrity [check]
Solution
Step 1: Evaluate client connectivity constraints
Mobile clients have intermittent connectivity; gRPC streaming (A) requires persistent connections, which mobile networks may not support well. HTTP long polling (D) causes overhead and latency.Step 2: Compare WebSocket with server buffering vs polling
WebSocket with server-side buffering and reconnection (C) balances low latency and fault tolerance better than client polling (B), which increases latency and load.Final Answer:
Option C -> Option CQuick Check:
WebSocket + buffering + reconnection -> best for intermittent mobile [check]
Solution
Step 1: Identify stateful bottlenecks at scale
Chat servers maintain WebSocket connections bound to server memory, making horizontal scaling and resharding difficult.Step 2: Compare other components
Databases (The database fails first due to increased query volume and locking) can be scaled with sharding and replicas. Load balancers (The load balancer fails first due to inability to distribute traffic evenly) scale horizontally. Message queues (The message queue fails first due to partition key hotspots causing uneven load) can rebalance partitions.Step 3: Conclude first failure point
Chat servers hit connection limits first due to stateful nature and sticky sessions.Final Answer:
Option D -> Option DQuick Check:
Stateful WebSocket servers -> scaling bottleneck [check]
Solution
Step 1: Analyze Delivery Worker scalability
Delivery Workers are CPU and thread-bound; increasing scale requires more workers, but thread limits and resource contention cause bottlenecks.Step 2: Compare other components
Relational DB (A) can be sharded; push gateways (C) are rate-limited but can be scaled with multiple credentials; presence cache (D) can be sharded with consistent hashing.Final Answer:
Option A -> Option AQuick Check:
Delivery Workers hit thread and CPU limits first at 10x scale [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]
