Join Action

Description

The Join action is used to synchronize parallel branches in a workflow. It acts as a control point that waits for all preceding parallel branches at the same level to complete before continuing with the next action(s).

This eliminates the need to create separate child workflows solely for the purpose of joining and continuing execution after parallel tasks have completed.

Usage

Traditionally in Apache Hop, if you wanted to run parts of a workflow in parallel and then continue with a sequential flow, you would isolate those parallel sections in a child workflow. This was necessary to prevent downstream actions from being executed prematurely.

With the new Join action, this workaround is no longer needed.

To use the Join action:

  1. Configure your workflow with multiple outgoing hops from a single action.

  2. Enable parallel execution on the outgoing hops you want to run in parallel.

  3. Add the Join action at the point where all parallel branches converge.

  4. Connect all parallel branches to the Join action with regular (non-parallel) hops.

  5. Connect the Join action to the next action you want to execute after all parallel tasks have finished.

Example Workflow Structure

When executed:

Using the join action instead of a child workflow

  • The actions pipeline-1, pipeline-2 and pipeline-3 run in parallel.

  • The join action waits until pipeline-1, pipeline-2 and pipeline-3 are finished.

  • Once they complete, the workflow continues with final action check-datasets.

Benefits

  • Simplifies parallel execution: No need for a separate child workflow just to coordinate branches.

  • Improves readability: Your parallel and sequential logic can be maintained in a single workflow.

  • Increases maintainability: Fewer components and external dependencies (child workflows) to manage.

Result

What this action passes on to the next action. See Action results for how results travel through a workflow.

Result Value

True

Every branch that leads to the Join has finished, and none of them failed on the way. Only a branch whose hop into the Join is a success hop counts as failed when its last action is false: with a failure hop or an unconditional hop, a false action does not make the Join false.

False

A branch ended false while its hop into the Join is a success hop, or can’t run any more because of an earlier failure. The number of errors is the number of such branches.

Result files

The result files of one branch are passed on. The result files of the other branches are not added: when several branches add result files, only those of one branch reach the next action.

Result rows

The result rows of one branch are passed on, as for the result files.