During tournament weekends, thousands of spectators, umpires, and tournament directors demand live score updates simultaneously. A standard REST architecture with periodic polling collapses under thousands of concurrent HTTP requests. Here is how we architected the telemetry engine for ROVERS to achieve sub-50ms score propagation across 10,000+ active connections.
The Concurrency Challenge Across 16 Active Courts
When match points occur simultaneously across 16 courts, tournament bracket engines must recalculate seedings, qualification paths, and next-match umpire assignments instantly. A 2-second database lock delays court schedules across the entire venue.
Decoupling Ingestion with Bun & Redis Streams
We segregated write traffic from analytical read models. Umpire handheld scorecards post point events over lightweight binary WebSockets into a Bun runtime server. The event writes immediately to an in-memory Redis Stream at sub-millisecond latency.
"Never let live write ingestion block on relational database disk writes. Ingest to in-memory event streams first, fan out to live clients, and persist to relational storage asynchronously."
Sub-18ms Flag & Score Overrides
Referees and tournament directors can undo or correct erroneous points with instantaneous cascade updates across umpire devices, giant stadium LED scoreboards, and mobile spectator apps.
Edge-Cached Spectator Dashboards
For viral spectator traffic spikes (reaching 10,000+ concurrent live fans), we route read traffic through globally distributed Cloudflare edge workers subscribed to Server-Sent Events (SSE), isolating the core telemetry server from public traffic loads.


