Skip to content

CONCEPT Cited by 1 source

Headless API invocation

Definition

Headless API invocation is the property that a tool can be driven without a graphical user interface — typically via a programmatic SDK (Java / Python / etc.) or a command-line interface — and produces the same output as its interactive desktop counterpart. The GUI is an optional affordance; the engine is callable from a script.

For a cloud integrator, headless invocation is a hard prerequisite: you cannot run a GUI inside a Linux Docker container on an ephemeral compute node, so any tool you want to deploy as an auto-scaling worker must be headlessly callable.

Canonical instance — FLAPI in Netflix Cosmos

Netflix's MPS requires tools to "support headless invocation via Java, Python, or CLI" as one of four explicit runtime requirements for anything running inside Cosmos (Source: sources/2026-04-24-netflix-scaling-camera-file-processing-at-netflix).

FLAPI satisfies this: the same color-science + image-processing engine that ships as the Baselight desktop application is exposed as a backend-callable API. Netflix bundles it in Ubuntu-based Docker images with Java/Python glue that calls FLAPI directly, with no GUI layer.

Why this matters for cloud deployment

Cloud FaaS / serverless deployment imposes a shape:

  • Container images must be small and fast to launch.
  • No persistent interactive session — the worker runs, emits output, dies.
  • Invocation happens via a scheduler / orchestrator, not a human operator.

Tools built GUI-first often have to be retrofitted with a headless mode late in their life. Tools built with the engine-GUI-separate architecture (engine shipped as a library + API, GUI shipped as a separate app consuming that library) are cloud-ready by default.

FilmLight's product structure — Baselight / Daylight as desktop apps layered on top of a core engine, FLAPI as the backend-exposed API to that same engine — is the engine-GUI-separate architecture. Netflix got headless invocation for free.

Companion requirements for cloud packaging

Headless invocation is one leg of a four-part checklist Netflix enumerates for tools runnable in Cosmos:

  1. Packageable as Serverless Functions in Linux Docker images.
  2. Can run on CPU-only instances (see concepts/cpu-only-media-processing).
  3. Headless invocation via Java, Python, or CLI. ← this concept.
  4. Stateless operation — terminate and re-launch on failure (see concepts/stateless-compute).

Together these form the patterns/serverless-function-for-media-processing pattern: any tool satisfying all four can be dispatched as a Cosmos Stratum Function without further integration work.

Desktop-to-backend coherence

A non-obvious secondary benefit: when the backend calls the same engine that the desktop app uses, validation done at the desktop maps directly to what the backend produces.

Netflix's workflow specialists use Baselight on their workstations to manually validate pipeline decisions before the first day of principal photography — because the desktop engine and the FLAPI-driven cloud engine are the same core, this manual validation is meaningful. If the backend were a separate reimplementation, the validation would be advisory at best.

(Source: sources/2026-04-24-netflix-scaling-camera-file-processing-at-netflix.)

Seen in

  • sources/2026-04-24-netflix-scaling-camera-file-processing-at-netflix"Support headless invocation via Java, Python, or CLI" as one of four runtime requirements for tools running in Netflix's Cosmos media-compute platform; canonical instance is FLAPI bundled in Docker images and called from Java / Python glue without a GUI layer, with the same engine backing Baselight on workstations.
Last updated · 550 distilled / 1,221 read