Racing Post
Real-time data for betting shops nationwide.
Multiple XML feeds and data sockets from different providers, aggregated, normalised, and pushed to touchscreens in betting shops across the UK. The kind of system where being a second late means showing the wrong odds.
When Milliseconds Matter
Racing Post had data coming from everywhere - multiple XML feeds, data sockets, different providers, each with their own formats, timing, and quirks. All of it needed to be pulled together into a single reliable stream powering live displays in betting shops across the country.
I designed and built the data aggregation and distribution system. Ingestion from every source, normalisation into a common format, validation to catch bad data before it reaches a screen, and real-time push to the touchscreen displays. When a race is about to start and odds are moving, you can't afford lag. When a feed goes down, the system has to handle it gracefully without the punters in the shop noticing anything.
The architecture was built for continuous operation - no maintenance windows when you're serving live data to betting shops that are open all day. Monitoring and alerting for data quality, fault tolerance for when providers have issues, and an extensible design that made it straightforward to add new data sources as Racing Post's needs evolved.
Under the Hood
Ingestion
Multi-source data from XML feeds and socket connections. Each provider has their own format, timing, and quirks. All handled, all normalised.
Reliability
Fault-tolerant architecture with monitoring and alerting. When a data source goes down, the system handles it gracefully without affecting the displays.
Distribution
Real-time push to touchscreen displays nationwide. Data quality validation before anything reaches a screen. Extensible for new data sources.