Execution Model

Deterministic Execution

Workflows run as structured programs. Every step, decision, and failure is explicit.

Execution Is a Program

Every workflow run becomes a Task. Tasks execute like deterministic programs — not probabilistic chats. Each step is ordered, observable, and final.

Strict Step Order

Steps execute sequentially. No future access. No branching unless explicitly defined.

Immutable Outputs

Once a step completes, its output is frozen and permanently recorded.

Fail-Fast Semantics

Execution stops immediately on failure. No hidden retries or silent recovery.

Explicit Re-runs

Re-running a workflow creates a new task. History is never mutated.

Execution Flow

  1. Task Creation — Trigger creates a Task with steps, edges, and context.
  2. Task Claiming — Worker atomically marks task as RUNNING.
  3. Context Init — Execution context is built from workflow input and variables.
  4. Step Execution — Steps run sequentially or in parallel, with distributed locks for safety.
  5. Result Persistence — Step results and logs are written to MongoDB.
  6. Completion — Task reaches terminal state: completed, failed, pending_approval, or rejected.

Parallel & Join Execution

Parallel nodes fan out execution into concurrent branches. Join nodes synchronize branches back together. MongoDB-backed distributed locks ensure safe execution across multiple workers.

Retry & Resume

Steps support configurable retry policies with exponential backoff. Failed steps can be rerun without re-executing successful predecessors. Approval nodes pause execution for human review, and resumable tasks continue from the next step upon approval.