Skip to main content
An execution is one live run of a workflow. Starting a workflow creates one with its own executionId, a status for the whole run and a status for every node.

Starting

A start request names a session and a workflow, and may carry a payload for the trigger:
The response is 202 Accepted with data.executionId. The id is handed out only after the scheduler has granted a slot, so a refused start never gets one. If your client retries after a network failure, send an Idempotency-Key header: a repeat with the same key, session and workflow within ten minutes returns the first execution id instead of starting a second run. Two keys in the start payload are reserved:

Status model

Run and node status only move forward: A status that would step back is ignored, so a late or out-of-order event can never reopen a finished node. The full list is in Status values.

How a failure ends the run

  • Nodes behind a failed node end as UPSTREAM_FAILED, so only the node that failed shows FAILURE.
  • The first terminal that fails ends the run at once and cancels the other branches (CANCELLED).
  • A caller that cancels ends the run CANCELLED. A second end of a run is ignored.

While it runs

  • Progress: GET /api/executions/{executionId} returns the run and node statuses; a live stream of changes is available as server-sent events.
  • Logs: lines written by nodes while they run, labelled stdout or stderr, as a stream.
  • Results: a separate channel recording what reaches every terminal node, with payloads kept whole and typed.
  • Commands: pause, resume, step, skip, breakpoints, signals, retry, restart and stop. See Run controls.
See Observability for how to read each of these.

Results

Terminals publish each message they receive and an end marker for the node; the run publishes an end marker when it finishes. The live stream is complete. Only the replay buffer for a late reader is bounded (1,000 events per run by default), and end markers say truncated when anything was dropped. Results are kept in memory only, so they are gone after a restart.

Restart, retry and resume

See Checkpoints and resume.

Limits and defaults