Event stream
The Server-Sent Events endpoint pushes low-latency job and Worker changes to operations clients. It is designed as an invalidation and live-progress channel—not a durable event log.
Stream operational events
Opens a Server-Sent Events stream for live job and worker updates.
/api/v1/operations/events200 Events are transient. Refetch REST resources after every reconnect.
Request
curl --no-buffer --header 'authorization: Bearer ADMIN_ACCESS_TOKEN' http://localhost:4400/api/v1/operations/events Event sample
event: job.progress
data: {"version":1,"eventId":"EVENT_UUID","type":"job.progress","occurredAt":"2026-09-10T09:00:15.000Z","resourceId":"JOB_UUID","payload":{"overallProgress":42.5}}
event: keepalive
data: {"occurredAt":"2026-09-10T09:00:30.000Z"}Event types
| Event | Meaning |
|---|---|
job.progress | Accepted live transcoding progress and FFmpeg metrics |
job.updated | Persisted job lifecycle or assignment changed |
worker.updated | Registration, heartbeat, statistics, connectivity, or drain changed |
keepalive | Emitted every 15 seconds to keep idle connections open |
Operational envelopes contain version, eventId, type, occurredAt, resourceId, and payload.
Reconnection strategy
- Let
EventSourcereconnect with its normal backoff. - Treat the connection state as degraded while disconnected.
- Poll relevant REST list/detail resources during the outage.
- Refetch those resources immediately after reconnecting.
- Resume applying new live notifications.