← All work

Media & Entertainment

HBO

The catalog behind a global streaming service

Catalog scope
Every HBO GO title
Consumers
Web, mobile, XBox, affiliates
Releases
Multi-datacenter

Four years on the HBO GO platform, owning the content catalog that fed HBOGO.com, the services behind the mobile apps, the feeds that supplied affiliate distributors, and the build system that shipped all of it.

01 The problem

HBO GO had to present the same library consistently across the website, the mobile applications, the XBox, and a set of affiliate distributors who each wanted the data in their own format. One catalog, many very different consumers — and a release process that had to keep pace across multiple data centers without anyone losing track of which version was where.

02 The catalog

We developed and maintained the Catalog application managing every movie and series available on HBOGO.com, built on Java 1.8, Spring 4.x and Apache CXF for the RESTful services, with Oracle and Cassandra behind the data tier. The backing services feeding the mobile applications spoke JSON primarily, with XML where a consumer required it.

03 Distribution and partners

Affiliates needed the content as feeds rather than API calls, so we built Atom-based feeds for HBO GO content, designed against the Atom spec but with a custom solution underneath to support RSS and other formats where a partner required them. The XBox initiative was integrated using Microsoft Bing search.

04 Securing the partner edge

Affiliate connections ran on SAML 2.0. We generated and installed the JKS keystore certificates underpinning authentication and authorization between affiliate partners and HBO GO, and built and verified the backup keystore process so certificate rotation did not become an outage.

05 Shipping it

We also built the deployment system the platform released through: a single-page jQuery interface over a Java backend that queued multiple projects for build and deploy across environments, and tracked which servers and versions were live in which data center. Deployment tooling rarely makes a case study, but on a platform this size it is the difference between a release being routine and being an event.