Workflow Nodes

Parallel & Join Nodes

Split workflow execution into multiple concurrent branches and merge them back with join nodes. Built on distributed locks for safe multi-worker execution.

Parallel Node

The Parallel node fans out execution into multiple outgoing branches. Each branch runs independently and concurrently. The node supports two failure strategies: fail-fast (stop all branches on first failure) and continue-on-error (let other branches finish even if one fails).

parallel-node.json
{
  "type": "parallel",
  "failureStrategy": "fail-fast",
  "branches": [
    { "steps": [{ "type": "http", "url": "https://api.a" }] },
    { "steps": [{ "type": "http", "url": "https://api.b" }] }
  ]
}

Join Node

The Join node waits for all parallel branches to complete before continuing. It merges branch results into the shared execution context. If a branch failed and the strategy is fail-fast, the join will propagate the failure.

join-node.json
{
  "type": "join",
  "branches": ["branch_a", "branch_b"]
}

Execution Guarantees

Distributed Locking

Parallel and join nodes use MongoDB-backed distributed locks and semaphores. This ensures that even when multiple workers are running, branches do not race or corrupt shared state.

Concurrency Control

Each worker respects the configured concurrency limit. The lock manager prevents over-subscription of parallel tasks across the cluster.

Builder Usage

In the visual workflow builder, drag a Parallel node onto the canvas. Connect multiple branches from its output port. Connect a Join node at the end of each branch and wire them back to the join's input port. The builder enforces that every branch reaching a join has a corresponding edge.