Practice
Solution
Step 1: Understand availability target and failure domain
99.99% availability requires tolerating entire data center failure without downtime, which single-region setups cannot guarantee.Step 2: Evaluate options for multi-region failover
Active-active multi-region clusters with automatic failover provide seamless continuity, unlike local caches or single-region redundancy.Final Answer:
Option A -> Option AQuick Check:
Multi-region active-active clusters -> tolerate data center failure [check]
Solution
Step 1: Trace Delivery Worker behavior at Step 4
The Delivery Worker reads fan-out events from Kafka and attempts delivery. If the follower is offline, immediate retry (A) would block and reduce throughput. Dropping messages (C) causes data loss. Pushing directly to device cache (D) is impossible if offline.Step 2: Understand retry mechanism
The system marks the message as sent but not delivered, queues it for retry later when the follower reconnects, ensuring eventual delivery without blocking.Final Answer:
Option A -> Option AQuick Check:
Offline followers cause queued retries, not immediate blocking [check]
Solution
Step 1: Trace the atomic INCR operation
At Step 3, the Redis INCR command increments the counter regardless of limit.Step 2: Check limit enforcement logic
If the incremented counter exceeds the limit, the request is rejected but the counter remains incremented to reflect the attempt.Final Answer:
Option B -> Option BQuick Check:
Counter increments atomically; request rejected if limit exceeded [check]
Solution
Step 1: Identify stateful components at scale
WebSocket servers maintain persistent connections bound to server memory, limiting horizontal scaling.Step 2: Compare with stateless components
Stateless API servers and load balancers scale horizontally more easily; databases fail later due to storage.Final Answer:
Option A -> Option AQuick Check:
Stateful WebSocket servers bottleneck first due to connection affinity [check]
Solution
Step 1: Identify centralization bottleneck
The Ticket Server centrally allocates ID blocks and maintains allocation state, limiting horizontal scaling.Step 2: Compare other components
Clients scale horizontally; network scales with infrastructure; database load is less critical if Ticket Server caches state.Final Answer:
Option A -> Option AQuick Check:
Ticket Server centralization -> first bottleneck at 10x scale [check]
