Process Flow

A Process Flow is a set of activities arranged in a sequence to perform a specific task. Combining various activities, that is, Source, Target, Schema, Mapping, or Transformer creates a process flow.  A Process Engine controls the execution of a process by starting the execution of process flow instances and all the activities present in a process flow. When the process flow is executed, data from the source is converted to the intermediate form and dispatched to the target.

Activities in a Process Flow can be executed in either of the two modes: 

  • Synchronous mode: If an activity is synchronous, process flow initiates the execution of that activity, and waits for its completion. The execution of the subsequent activity is initiated only after the completion of the first activity.
  • Asynchronous mode: If an activity is asynchronous, process flow initiates the execution of that activity and subsequent activities, as defined in the process flow without waiting for the completion of the first activity.

    Repository file is not generated for the activities used in the Asynchronous mode. 

    You can toggle between the two modes from the Activity Properties panel.

    Controlling Synchronization

    In a process flow, if an activity is synchronous, no signal is required to acknowledge the Process Engine about its completion as it runs in the main thread. If an activity is asynchronous, running parallel to the main thread, some mechanism is required to notify the Process Engine about its completion. This is achieved by signaling.

    Signaling
    Signaling facilitates coordination of asynchronous activities in a process flow. A signal is raised as an asynchronous activity completes. The Synch Node in the process flow waits for signal and ensures that all the activities raising that signal are completed before control moves further in the process flow. This is done using the Synch Node option while defining a process flow.

    Time Out
    When an activity is used as asynchronous, a new property TimeOut is added to it. By default, its value is 300 seconds. If an asynchronous activity cannot connect to the next activity within this time limit, it gets aborted. For information on how to use an activity in asynchronous mode and changes its property, refer to Creating Process Flow.