Skip to main content
beginner
realtime
aggregation

Polling System

Create polls, cast votes, tally results.

Back-of-the-envelope

DAU
10.0M
Avg RPS
5
Peak RPS
100
R:W ratio
100:1
Show assumptions
  • 10M DAU, 5 poll views/user/day = 50M poll views/day
  • 1% of viewers vote = 500K votes/day = 5.8 votes/sec average, 100/sec peak
  • 1M active polls at any time
  • Real-time results display; tally within 1s of vote
Premium level walkthrough

Level-by-level design for Polling System

Pick your interview level (L4/L5/L6/L7). See what the interviewer expects at that level, then walk through the design at every scale (10K → 1B RPS) with the depth expected for that level. Applies the same universal rubric across all system designs.

All 4 interview levels at a glance

Click any level to focus below — or scroll to see all four side-by-side.

L4
Software Engineer (L4 / SDE II / IC3)6-8 weeks with 3 engineers

What L4 interviewer expects

Can you produce a working, boring, correct architecture that ships in 6-8 weeks with a small team? Do you know when NOT to add complexity?

Anchoring scale for L4: L4 candidates are graded on correctness of a single-region design at moderate scale (~10K RPS). The interviewer wants to see you can solve ONE thing end-to-end without over-engineering.
Your answer MUST cover
  • Functional requirements (2-4 sentences)
  • One clarifying question that reveals a real trade-off
  • Back-of-envelope estimation (DAU × requests/user = RPS)
  • 3-5 API endpoints with correct HTTP verbs
  • Data model with primary key + at least one index reasoning
  • 3-tier architecture: LB + stateless app servers + database
  • Multi-AZ database for basic HA
  • Rough cost floor ('runs at $X/mo')
Your answer must NOT have
  • Microservices at 10K RPS (over-engineering)
  • Kafka / Kinesis without a clear stream use case
  • Sharding before you've saturated one primary
  • Multi-region for an MVP with no international users
  • Kubernetes for 3 engineers
Red flags if missing
  • No API design → 'never shipped a real service'
  • No cost floor → 'never owned a budget'
  • Adds Redis + Kafka + microservices → 'copies best practices without thinking'
  • Cannot explain a single failure mode → 'never been on-call'
What separates a good L4 answer from a great one

A great L4 answer explicitly REJECTS complexity and defends the boring choice. 'I'm NOT adding Redis because at 10K RPS with 100:1 R:W my Postgres handles this at 30% CPU. Adding Redis introduces invalidation problems for zero benefit at this scale.' That's the L4-borderline-L5 signal.

Design at every scale — with L4 depth

At L4, an interviewer might probe you at any scale (10K → 1B RPS). Here's the depth of answer expected at each — for Polling System specifically.

10,000 RPS
🎯 GO DEEP HERE
PRIMARY FOR L4

L4 lives here — go deep

3-engineer startup, $500/mo infra budget, 8-week deadline

What YOU say at L4 for 10,000 RPS

Walk through: requirements → estimation → API → data model → boring 3-tier. Explicitly REJECT premature complexity. Show restraint.

What kills your answer

Adding Redis/Kafka/microservices because 'best practice.' Interviewer reads this as junior-thinking.

No system-specific variant authored for 10K. Would show the L4 answer at this scale here.
100,000 RPS
CONFIDENT SKETCH

Confident sketch

10-30 engineer team, $2K-5K/mo infra, first paying enterprise customer

What YOU say at L4 for 100,000 RPS

Name the bottleneck (usually DB read CPU). Pick exactly the right mitigation (cache-aside + read replicas). Explicitly reject premature sharding.

What kills your answer

Jumping to sharding at 100K. Or listing 5 options without picking one.

No system-specific variant authored for 100K. Would show the L4 answer at this scale here.
1,000,000 RPS
ONE SENTENCE

One sentence — no depth-faking

40-100 engineers, $20K/mo infra, multi-region, cross-team coordination

What YOU say at L4 for 1,000,000 RPS

'At 1M I'd introduce sharding, multi-region with CDN, and eventual-consistency IDs. But 1M is L5+ territory, so I'll defer unless you want depth.'

What kills your answer

Bluffing depth you don't have. Interviewer detects it in 30 seconds.

No system-specific variant authored for 1M. Would show the L4 answer at this scale here.
1,000,000,000 RPS
ACKNOWLEDGE & DEFER

Acknowledge & defer

200+ engineers, $50M+/yr infra, capital allocation, regulator conversations

What YOU say at L4 for 1,000,000,000 RPS

'1B is platform-scale — business + org problem, not primarily technical. That's L7 conversation. Won't fake depth.'

What kills your answer

Making up numbers or claiming familiarity you don't have.

No system-specific variant authored for 1B. Would show the L4 answer at this scale here.