Skip to main content

Parallel

The Parallel activity is used to execute multiple activities simultaneously. It allows different branches of your workflow to run at the same time, improving performance and efficiency when multiple independent operations can be performed concurrently.

When you use the Parallel activity, the workflow continues only after all parallel branches have finished executing.

You can also use the Parallel activity to run multiple subflows within a workflow. Each subflow can execute independently, enabling modular, concurrent execution of different parts of a larger process.

Failure behavior

By default, Parallel executes all branches together and waits on them as a group. If one branch fails, the overall Parallel activity fails.

Use isolate_flows when you want each branch to finish independently before the workflow evaluates the final result of the Parallel step.

With isolate_flows enabled:

  • Every parallel branch is allowed to run to completion, even if another branch fails.
  • Boltic waits for all branches to settle before finishing the Parallel activity.
  • If one or more branches fail, the workflow still marks the Parallel activity as failed after collecting all branch outcomes.
  • The failure is returned as a consolidated error instead of stopping at the first rejected branch.

This is useful when you want better visibility into all branch outcomes in the same run, especially for fan-out steps where multiple branches may fail for different reasons.

When to use isolate_flows

Enable isolate_flows when:

  • You want all branches to attempt execution, even if one branch fails early.
  • You need a complete view of which branches succeeded and which failed.
  • You are running loosely coupled branches and do not want the first failure to hide later branch results.

Leave isolate_flows disabled when:

  • You want the Parallel step to fail immediately as part of normal control flow.
  • Later branch results are not useful once one branch has already failed.
  • You want simpler failure handling for tightly coupled branches.