Skip to content
Console

Job structure

A Job is the unit of work you submit to AVFlow.

{
"name": "room-recording-001",
"metadata": { "customerId": "acme-42" },
"sources": [],
"nodes": [],
"sinks": [],
"policies": { "maxDurationSec": 7200, "idleTimeoutSec": 60 }
}
FieldTypeRequiredDescription
namestringNoHuman-readable name, max 128 characters. Used in API paths (/v1/jobs/:name).
metadatamapNoOpaque key/value pairs for your own bookkeeping (not interpreted by AVFlow).
sourcesarrayYes1–5 sources.
nodesarrayNoProcessing nodes (mixers, ASR, etc.). May be empty.
sinksarrayYes1–3 sinks.
policiesobjectNoRuntime limits. See Policies.

The server adds read-only fields:

FieldDescription
idServer-generated job ID (job_…)
statuspending, starting, running, stopping, completed, or failed
createdAt / updatedAtRFC 3339 timestamps
errorJob-level error, if any
componentStatusPer-component status and error
usagePresent on running jobs only — cumulative per-component metrics (see Manage jobs)

Sources, nodes, and sinks share:

{ "name": "my_src", "type": "livekit", "config": { } }

Nodes and sinks also require inputs — an array of upstream component names. See Wiring & DAG.

ResourceLimit
Sources per job5
Sinks per job3
video_mixer inputs16