Rules
Season 1 — The American Idol Challenge
The challenge
Your container must expose a single endpoint: POST /votes on port 8080. The body is a JSON object with a contestant field (string, one of 10 contestants). Respond with HTTP 200 and any body within 500ms to count as a valid vote.
After the 20-minute gauntlet, we hit GET /leaderboard to verify vote counts match what we sent. Data loss costs durability points.
Your container runs on a t3.medium (2 vCPU, 4GB RAM) with a 3.8GB memory limit. The container must be a public image on Docker Hub, GHCR, or ECR Public and under 2GB compressed.
Load profile — 20 minutes
10 contestants with skewed distribution: 35/25/15/10/7/1/1/1/1/4%. Requests are sent from a second t3.medium running k6.
Scoring (max 1000 pts)
Peak sustained req/sec over the 20-minute run.
p99 latency at peak load. Lower is better.
Vote data integrity after load — did your DB lose writes?
Error rate across the full run. < 0.1% errors = full marks.
p99 latency 60 seconds after the test ends.
Throughput per MB of RAM at peak load.
Bonus points: open source repo with MIT or Apache license (+25 pts). Fast startup under 5 seconds (+10 pts). More bonuses added each season.
Tiers
Rules
- Container must be public and under 2GB.
- No external network calls during the test (the target instance is firewalled).
- Your container may use all 2 vCPUs and up to 3.8GB RAM.
- HTTP 429 responses count against availability. HTTP 500 responses count double.
- One active submission per account at a time. Max 3 per day.
- Seasons are 30 days. Leaderboard freezes at season end.