HLDArena
HLD-221·Messaging & Queues
Medium · 1,000 pts

Online Coding Judge & Sandbox Execution Queue

Design a LeetCode / HackerRank submission evaluation backend that decouples weekly contest submission floods via partitioned queues and serves live verdict polling.

Max p99
≤ 65 ms
Availability
≥ 99.5%
Budget
≤ $5,400

Functional Requirements

  • FR-1POST /submissions — Persists source code, enqueues isolated sandbox execution, and returns submission_id.
  • FR-2GET /submissions/{submission_id} — Returns live test-case progress and final AC/WA/TLE verdict.
  • FR-3DELETE /submissions/{submission_id} — Supports tenant retention TTL expiry, rule updates, or stream cleanup while keeping recent rollup caches fresh.
  • FR-4Must buffer 5x contest-start submission spikes and survive a primary DB crash without losing runs.

Workload Profile

Daily Practice Load28,000 Verdict Poll RPS / 4,500 Submit Write RPS
Weekly Contest Spike82,000 Poll RPS / 18,000 Submit Write RPS
Active Working Set22 GB active contest submissions & test fixtures
Traffic DistributionHeavy burst on Contest Q1/Q4 problem & submission_id polls

Consistency Model

Read-after-write visibility required so contestants immediately see queued status and completed verdicts.

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
2,000 rps
Write RPS
400 rps
Key Distribution
Uniform (Low Skew)
Chaos Fault
None (Healthy Cluster)
Expected Pass CriteriaASSERTIONS
• Tail Latency: p99 ≤ 130 ms
• Availability: ≥ 99.5%
Valid end-to-end Client → Compute → Storage topology