A Flow is a logical unit of work declared by an assembly of Pipe instances connected to source and sink Tap instances.

A Flow is then executed to push the incoming source data through the assembly into one or more sinks.

A Flow sub-class instance may not be instantiated directly in most cases, see sub-classes of FlowConnector class for supported platforms.

Note that Pipe assemblies can be reused in multiple Flow instances. They maintain no state regarding the Flow execution. Subsequently, Pipe assemblies can be given parameters through its calling Flow so they can be built in a generic fashion.

When a Flow is created, an optimized internal representation is created that is then executed on the underlying execution platform. This is typically done by creating one or more FlowStep instances.

Flows are submitted in order of dependency when used with a Cascade. If two or more steps do not share the same dependencies and all can be scheduled simultaneously, the getSubmitPriority() value determines the order in which all steps will be submitted for execution. The default submit priority is 5.

Use the FlowListener to receive any events on the life-cycle of the Flow as it executes. Any Tap instances owned by the Flow also implementing FlowListener will automatically be added to the set of listeners.

If the legitimate rights and interests of the original author are infringed, please contact us to delete it.