Configuration
The Parallel Join requires no configuration. This page covers auto-pairing, memory written, and execution state transition.
No configuration required: The Parallel Join node has zero configurable properties. It automatically pairs with the preceding Parallel Fork node by analysing the workflow graph structure. All behaviour — how long to wait, how many lanes to collect, and how to store results — is determined automatically.
Properties
| Property | Type | Required | Default | Description |
|---|---|---|---|---|
| No properties — the Parallel Join node has no configuration. | ||||
Automatic Fork-Join Pairing
The BizFirstAI execution engine automatically determines which Parallel Fork a given Parallel Join is associated with by traversing the workflow graph backwards from the Join node. The first Parallel Fork found that has active parallel lanes is the associated Fork. This means:
- Each Parallel Fork must have exactly one corresponding Parallel Join in the workflow.
- Parallel Fork/Join pairs can be nested inside other structures (e.g., inside a Loop body), as long as each Fork has a corresponding Join within the same structural scope.
- Do not place two Parallel Fork nodes whose lanes both converge into the same Join node — each Fork must have its own dedicated Join.
Memory Written by Parallel Join
When all lanes complete, the Join node writes the following to the execution memory before firing its success port:
| Memory Key Pattern | Type | Description |
|---|---|---|
lane_N_* (e.g., lane_0_status) |
various | All variables and outputs from lane N are written with a lane_N_ prefix. For example, if lane 1 produced a variable smsSent = true, the Join writes lane_1_smsSent = true. N is 0-based. |
lane_outputs |
array of objects | An ordered array where each element is the final execution context object of the corresponding lane. lane_outputs[0] is the full context of lane 0, lane_outputs[1] of lane 1, etc. |
lane_success_count |
integer | The number of lanes that completed without error. |
lane_failure_count |
integer | The number of lanes that completed with an error (relevant when fail_fast: false). |
IsParallelExecutionActive |
boolean (false) |
Reset to false — signals that parallel execution has ended and normal sequential execution resumes. |
Tip — Access lane results predictably: The lane index (0, 1, 2, ...) corresponds to the order in which the lanes were listed in the Parallel Fork's
connections.success array. Document your Fork configuration clearly so you always know which lane index corresponds to which operation (e.g., lane 0 = email, lane 1 = SMS, lane 2 = Slack).