HLD-117·Storage & Caching
Easy · 500 ptsLive 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.
Solutions Locked
Sign in and either achieve AC or complete 3 official submissions on this question to inspect community diagrams and writeups.
Loading solutions...
Submission History (0)Select to replay
No submissions yet
Click Submit in the top bar to evaluate against all 7 judge cases and save each run here.
Design Write-up
0 boxes · 0 edges
0 words