Skip to content

Live sports data, across a publishing group.

A system ingests sports data from an external feed, normalizes it and distributes updates to a publishing group’s portals. Each publication keeps its own identity.

Live sports dataPublishing
DATA / APIOne shared source
ResultsStandingsStatistics
Illustrative system overview. No real data or confidential screenshots are shown.
Context

national publishing group

Contribution

Worked on the backend, data pipelines and widgets as part of a team.

Scope

A shared dataset with customizable presentation.

The problem to solve.

Results, standings and statistics arrive as files from an external provider. They need to become consistent records, available during events and usable by publications with different presentation needs.

Keep the source. Separate the presentation.

Original files are stored before parsing. A scheduled job, a normalized database and one API sit above them. Widgets share their logic while each publication controls the visual style.

If parsing fails, the source data remains available. Update frequency depends on the feed and the scheduled job.

Inside the system.

  1. Import via FTP

    The system retrieves the sports data provider’s published files over FTP.

  2. Source files retained

    Every source file is retained before processing, so the original input remains available if parsing fails.

  3. Scheduled processing

    A scheduled job reads the files, extracts the records, and normalizes them into a single schema.

  4. Results database

    Standings, results, and statistics are stored as queryable records rather than scattered files.

  5. Results API

    The API exposes the latest normalized data while events are underway.

  6. Widgets in the portals

    A library of customizable components lets each publication apply its own colors and visual style.

What it enables.

The same backend supplies multiple portals. Results, standings and statistics can be queried through a normalized source.

Publications adapt widgets to their own identity without duplicating the implementation. The architecture is designed for live-event traffic spikes.

Tell me about your project.

Let's talk