How Adept Mobile Leverages API Caching to Support Apps for Major Professional Sporting Leagues

October 22, 2019

Adept Mobile is a leading provider of mobile applications in the sports and entertainment space, implementing multi-platform mobile experiences for partners such as the NFL, NBA, NHL, MLS, CHL, and many others. Each application experiences extreme volumes of traffic during game days/times around which the Adept Mobile team is responsible for delivering consistently performant user experiences.

Adept Mobile originally came to Section several years ago, when they became frustrated with legacy CDN solutions that failed to offer the level of flexibility and control that their applications require. After achieving many early successes with Section in terms of both performance and development workflow improvements, the Adept team continues to evolve their solution set alongside the Section platform, tailoring custom edge solutions to optimize in-app experiences.

The Challenge

Each Adept application ingests massive amounts of league, team, and athlete data to deliver rich content experiences to app users. As an example, the San Jose Sharks offer fans rich, dynamic in-app experiences, including exclusive content, live game streaming, game day alerts, secure digital ticketing, and stadium guides. Adept Mobile provides similar app experiences for teams across the league, as well as other major professional sporting leagues.

San Jose Sharks app

Recently, the Adept team approached Section’s engineers looking to solve challenges associated with fetching data across various API endpoints. Not surprisingly, APIs from the NFL, CHL, NHL, etc are all configured a little differently, and some have rate limits that require workarounds.

Adept Mobile leverages a React front-end for their platform. A key challenge that the Adept team is seeking to solve is how to normalize data flowing in from the APIs on the client-side before it hits the React app.

The Solution

The Section team has helped Adept Mobile implement reverse proxy caching and routing layers in front of each API endpoint, which means that the React app can be normalized to fetch for a single endpoint regardless of the sports league.

API caching

The front-end SDK fetches from the specified endpoint which renders the React view layer, allowing them to alleviate load off of the league’s APIs and work around rate limits.

API caching

What’s Next

Section’s API caching layer has been instrumental in alleviating load from the API, but perhaps more exciting is what’s coming next. Currently, the Adept application is handling data normalization with some code on the client-side. However, Adept is actively working with the Section platform to dynamically create tables without having to worry about the format of the incoming API data. To achieve this, Adept is leveraging Section’s Node JS module at the edge to handle the normalization.

API caching

The best part is that the logic that the Adept application is currently using to normalize data on the client-side is already written in JavaScript. This means that the Adept team can simply copy the existing application code into the Section Node JS module and be up and running at the edge immediately.