
Sky Sports: Real-Time Sports Data Platform for 11M Users
A real-time sports data platform replacing legacy Flash live scores, with 11M active users supported across web, iOS and Android from one hybrid app.
Project Goals
Replace end-of-life Flash technology with modern hybrid application, deliver real-time sports scores from stadiums to millions of users with sub-second latency, build scalable API infrastructure to handle massive traffic spikes during major sporting events, and ensure pixel-perfect design on retina iOS devices.
The Problem
Adobe was retiring Flash, and Sky Sports' live scores, its real-time sports data platform, ran entirely on it.
Millions of football fans checked scores during matches, and all of them were about to lose access once browsers stopped supporting Flash.
The timeline was tight and the stakes were high. Downtime during a Premier League match wasn't an option.
On top of that, the backend API was falling over during big games.
What We Built
We rebuilt the frontend, the backend and the mobile apps while keeping the old system running. Fans checking scores during matches never noticed we were rewiring the platform underneath them.
The New Frontend
Flash didn't work on phones, so Sky Sports fans on mobile couldn't follow live scores at all. That made this an expansion as well as a replacement.
We built a hybrid application that worked everywhere. One codebase served iOS, Android and the web, and every platform got the same experience.
We used native performance where it mattered and web technologies where they made sense.
The design had to be pixel-perfect on retina displays. Art directors notice when things look fuzzy, and we made sure they had nothing to complain about.
The Real-Time System
Live scores lose their value if they're late. Fans want to know what's happening as it happens.
We built a real-time pipeline that moved data from stadiums to screens in under a second. It took direct feeds from venues, used multiple data sources for redundancy and pushed updates over WebSocket connections, with no polling and no refresh button.
When a goal goes in, the update has to reach every fan's screen within seconds. That was the requirement.
The Backend Rebuild
The old API treated every request the same way. It didn't matter whether you wanted live updates or yesterday's results; everything went through the same slow process.
We rebuilt it as an event-driven system, so updates are sent only when scores change instead of on a timer whether anything happened or not.
Live matches use WebSocket connections and historical data comes from REST APIs, so each job gets the right tool. Caching sits wherever it makes sense, geographic distribution reduces latency, and auto-scaling absorbs traffic spikes.
Handling the Chaos
Sports traffic is predictable chaos. You know exactly when matches start, but you have no idea how many people will follow them.
A regular Saturday brings moderate traffic. On cup final day, traffic jumps from normal load to millions in minutes.
The system had to handle both without manual intervention. We built auto-scaling that adds servers as traffic rises and removes them when the match ends, so infrastructure costs track actual usage instead of worst-case guesses.
The Launch
You don't just flip a switch on something this big.
We ran the old and new systems in parallel, shifted traffic to the new platform gradually and A/B tested with real users during real matches.
We started with friendlies, where stakes and traffic were low, then moved to league games. The final test was the biggest one: Champions League finals.
There was zero downtime, and the best sign of success was that nobody noticed anything had changed.
The exception was mobile users, who noticed they could finally check scores on their phones.
The Results
11M active users supported. The platform carried Sky Sports' live scores audience through the biggest fixtures of the season.
Sub-second latency from stadium to screen. Score updates reached fans in under a second from the moment the venue feed changed.
Zero downtime during major events. There was no downtime during the migration, the launches or the Champions League finals.
100% Flash replacement. Every platform and every device moved to the new app.
Mobile access opened up. Fans who couldn't use the Flash product on their phones could now follow live scores anywhere.
Proactive error detection. We knew about problems before users noticed them. Under the old system, users had called in to report that it was broken.
What We Learned
Real-time at scale is about architecture, not just speed. You can write fast code all day, but if the architecture can't scale, fast code doesn't matter. Event-driven design, asynchronous communication, geographic distribution and caching are what handle millions of users.
Hybrid apps can perform well enough for content. For content-driven applications, a hybrid framework gets close to native performance while letting one codebase serve three platforms with the same features and the same release schedule.
Sports traffic requires special planning. Usage doesn't grow gradually the way it does in most SaaS. It goes from baseline to millions in minutes, holds for the length of a match and then drops back. Auto-scaling is the only way to survive that without wasting a lot of infrastructure.
Observability beats reactive support. Knowing about problems before users do changes how a team works. We went from learning about outages through phone calls to catching issues in dashboards before they affected anyone.
Gradual migration beats a big bang. A/B testing with real users during real matches gave us confidence, and if something went wrong, we could roll back instantly. When downtime isn't acceptable, the careful approach wins.
Sky Sports fans expected scores to just work. During the biggest migration in the platform's history, that's exactly what they got.
Need help building real-time applications at scale? Let's talk →
See more platforms we've built View case studies →
Like what you see?
Tell us what you're building and we'll tell you how we'd approach it.
Start a project