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.

GET
/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

EventMeaning
job.progressAccepted live transcoding progress and FFmpeg metrics
job.updatedPersisted job lifecycle or assignment changed
worker.updatedRegistration, heartbeat, statistics, connectivity, or drain changed
keepaliveEmitted every 15 seconds to keep idle connections open

Operational envelopes contain version, eventId, type, occurredAt, resourceId, and payload.

Reconnection strategy

  1. Let EventSource reconnect with its normal backoff.
  2. Treat the connection state as degraded while disconnected.
  3. Poll relevant REST list/detail resources during the outage.
  4. Refetch those resources immediately after reconnecting.
  5. Resume applying new live notifications.