HLDArena
HLD-117·Storage & Caching
Easy · 500 pts

Live Webinar Poll & Audience Vote Tally Service

Design an interactive live poll backend collecting tens of thousands of simultaneous audience votes when a keynote speaker launches a question on screen.

Max p99
≤ 40 ms
Availability
≥ 99.5%
Budget
≤ $2,250

Functional Requirements

  • FR-1POST /polls/{poll_id}/vote — Records a participant vote choice and increments option counters.
  • FR-2GET /polls/{poll_id}/results — Serves live percentage bar tallies to connected viewers.
  • FR-3DELETE /polls/{poll_id}/vote — Supports tenant retention TTL expiry, rule updates, or stream cleanup while keeping recent rollup caches fresh.
  • FR-4Must survive hot-key skew on a single keynote poll_id and a primary DB node crash.

Workload Profile

Baseline Polls16,000 Read RPS / 4,000 Vote Write RPS
Keynote Prompt Surge46,000 Read RPS / 16,000 Vote Write RPS
Active Working Set6 GB live poll tallies & voter dedup keys
Traffic DistributionHigh skew on active keynote poll_id

Consistency Model

Bounded eventual tally aggregation (< 2s bar chart lag) acceptable; cast votes persisted durably.

Design Write-up
0 boxes · 0 edges
0 words
Hidden Cases #4–#7 run automatically on Submit
Case 1: Smoke & API ContractInput Workload
Read RPS
1,600 rps
Write RPS
400 rps
Key Distribution
Uniform (Low Skew)
Chaos Fault
None (Healthy Cluster)
Expected Pass CriteriaASSERTIONS
• Tail Latency: p99 ≤ 80 ms
• Availability: ≥ 99.5%
Valid end-to-end Client → Compute → Storage topology