Skip to content

Industry · broadcast

Linear, live and a back catalogue on one pipeline

A broadcaster's traffic is not one shape. A cricket match and a fifteen-year drama archive have opposite cache behaviour, opposite failure tolerance and opposite cost profiles — and most platforms are built for exactly one of them.

Audience

Who this is for

Organisations whose traffic has a scheduled cliff in it, and whose worst night of the year is known months in advance.

Broadcasters
Terrestrial, satellite and cable operators taking linear channels and a back catalogue to streaming on one pipeline.
OTT platforms
Services carrying live rights alongside on-demand, where a match and an archive compete for the same delivery capacity.
Sports rights holders
Organisations streaming events directly, whose concurrency is decided by a fixture list rather than by a growth curve.

Peak night is the architecture

An average-day design fails on the one night that matters. Broadcast concurrency is not a smooth curve — it is a flat line with a cliff in it, and the cliff arrives on a schedule everybody already knows about. That is a gift, because it can be planned for, and a trap, because a platform sized for the average will fall over exactly when the audience is largest and the coverage is widest.

The structural answer is separation. Live gets its own edge, its own cache policy and its own failure domain; the on-demand catalogue gets another. A surge on the live path then cannot evict the archive's working set, and an archive re-encode cannot compete with a match for delivery capacity.

Detail

What a broadcast deployment has to get right

Live

Latency you can defend

Low-latency HLS on a dedicated edge, with the ladder tuned to the material rather than to a default profile. Sport and studio content do not want the same ladder.

  • Dedicated live edge
  • Ladder tuned per content type
  • Surge capacity planned against your own peak

Linear

Channels that behave like channels

Scheduled playout, ad markers, blackout and regional variation — the operational vocabulary a broadcast team already works in, rather than a VOD system pretending.

  • Scheduled linear playout
  • Regional and blackout rules
  • Catch-up from the same pipeline

Archive

A back catalogue that is cheap to hold

Most of an archive is watched rarely. Storage class and cache policy follow that reality instead of treating a 2009 episode like tonight's match.

  • Access-matched storage layout
  • Range-aware caching for long-form seeks
  • Re-encode only what needs it

Rights

Window enforcement

Rights are the constraint that most often turns into an outage. Licensing windows are applied per title and re-checked at the edge on every segment rather than trusted to the client. Country-level blocking is a separate control: the edge resolves and logs the viewer's country today, and enforcing a deny list on it is build work, not configuration.

  • Licensing windows applied per title
  • Per-segment token checks
  • Country blocking: resolved and logged, not yet enforced

Reference architecture

Live and VOD, deliberately apart

The separation is the point. Two edges, two failure domains, one control plane.

01Viewers

Untrusted — the public internet

  • Web playerHLS · AES-128
  • Mobile appsAndroid · iOS in development
  • TV appsAndroid TV · Tizen in development
  • Contributionbroadcaster RTMP in

02Edge zone — the only public addresses in the estate

TLS terminates here and nowhere else

  • traefik-edgeTLS · host and path routing
  • CrowdSecWAF and behavioural bans
  • Live pathlow-latency HLS
  • VOD pathrange-aware cache

03Application services — private VLAN, no public address

Reachable only through the edge, or through the bastion for operators

  • app-coreBFF aggregator
  • content-apicatalogue
  • search-apiindex-backed
  • session-authzsessions · entitlement
  • billingplans · payments · coupons
  • key-deliveryDRM keys, per segment
  • recommendationranking
  • bastionthe only way in, SSH only

04Media plane — live and on-demand are deliberately separate

A match-night surge cannot evict the back catalogue

  • live-transcodeFFmpeg, continuous
  • live-originHLS packaging
  • vod-transcode + GPUFFmpeg NVENC pool
  • vod-origin-cacheorigin pull and cache
  • upload-apiVOD ingest
  • job-schedulertranscode orchestration
  • RabbitMQjob queue
  • MinIOS3-compatible origin of record

05Data and messaging

State lives inside the perimeter

  • MariaDBprimary application store
  • Redissession and shared cache
  • Elasticsearchsearch index
  • ClickHouseper-session playback telemetry
  • Redpandaevent bus, Kafka API
  • OpenBaosecrets and transit encryption

06Virtualisation, delivery and observability

Declared entirely in code — the estate rebuilds from the repository

  • Proxmox VEisolated guest per service
  • Terraformguest lifecycle
  • Ansibleapplication delivery
  • Pipeline → registrybuild once, pull everywhere
  • Prometheusmetrics and cAdvisor
  • SigNozOpenTelemetry traces
  • Grafanadashboards and alerting
  • Lokifleet-wide logs
  • Yours — hardware you own
  • Rented — public cloud
  • Edge — faces the viewer
Live and VOD are deliberately separate machines. A stadium-scale live surge and a long-tail catalogue have opposite cache behaviour, and sharing one box means the surge evicts the catalogue.

Questions

The things broadcasters ask first

Can this take our existing playout feed?

Yes. The ingest path accepts standard contribution feeds and the encoding ladder is built around your material. The platform sits downstream of playout, not in place of it.

How do you handle a night that is ten times normal traffic?

By sizing the live edge against your real peak and keeping it separate from the catalogue, so the surge has somewhere to go that does not damage everything else. Capacity for a known event is a planning problem, and broadcast peaks are known.

What about advertising?

Ad markers are carried through the pipeline and the insertion integration depends on which ad system you already run. That integration is scoped in discovery rather than assumed.

Tell us about your peak, not your average

The number that decides a broadcast architecture is the concurrency on your biggest night of the year. Send that, the channel count and the archive size.