Skip to content
Kedgeworks
← All workBetting & gaming2025–26Scale · Greenfield

Free-to-play platforms for the NFL and NHL, at a million concurrent users.

1M+concurrent users at peak
99.9%uptime SLASub-200msresponse times
The situation

Low6 builds free-to-play prediction games for major sports organisations and betting operators: the NFL, the NHL, Betway, Bet365. The traffic profile is unlike a normal consumer product: almost nothing between fixtures, then a million people arriving inside the same few minutes when a match window opens.

We worked this one from two ends at once. One of us led the architecture and development of the platforms. The other delivered Spin to Win, a World Cup prediction product, picking up an in-flight codebase.

The constraint

Sport does not move its deadlines. A tournament product ships before the tournament or it does not ship, and the peak load arrives whether or not the system is ready for it.

The platforms carried a 99.9% uptime SLA against peaks of more than a million concurrent users, processing millions of picks and game entries a day, with tens of thousands of concurrent users inside individual match windows.

What we did

We architected enterprise-grade microservices infrastructure with event-driven patterns for real-time game state and user interaction, and designed the backend services to absorb millions of picks and entries per day while holding sub-200ms response times.

Spin to Win we picked up mid-flight and shipped against a fixed tournament deadline. That is the hardest kind of delivery, because the codebase is someone else's and the date is not negotiable.

Fastify and Node on the services, Azure App Service, Functions and Service Bus around them, Redis and Postgres underneath. React with TanStack Query and Zustand on the front end. Jest, Playwright and K6 across the test and load layers.

The outcome

Platforms designed for peak loads above a million concurrent users, carrying a 99.9% uptime SLA, with backend services built to process millions of picks and entries a day inside 200ms. A tournament product delivered on a date that could not move.

Stack
  • React
  • TypeScript
  • Vite
  • TanStack Query
  • Zustand
  • Fastify
  • Node
  • Azure App Service
  • Azure Functions
  • Service Bus
  • Redis
  • Postgres
  • Docker
  • GitHub Actions
  • Jest
  • Playwright
  • K6
Related

Working on something similar?