Appearance
Pins and routing
Every component sends and receives records through its pins, and every connection between two pins carries one type. This page shows how a record finds its way: which connections it takes, and how you branch, fan out and route by name.
Pin kinds
| Kind | What it does |
|---|---|
| Input | Receives records. |
| Output | Sends records on. Plugins name their outputs after what they carry: Output, NoData, Timeout, Catch. |
| Continue | Sends the record on after the component's own work is done, usually unchanged. |
| Start | Starts the component. Leave it unconnected and the flow calls it once when it starts. |
The plugin's page lists its pins and what each one carries. Select a pin in the designer to see its types.
How a record picks its connections
When a component sends a record out of a pin, each connection on that pin decides whether to take it:
| The connection has | It takes |
|---|---|
| A Route Id | Only records sent with that route id, such as the branch a Decision router picked |
The type NoInputData | Only the start signal of the flow |
The type AnyData | Every record, whatever its type |
| Any other type | Records of that type |
The route id is used once: after the record has left the pin, it is cleared, so the next component sends its records without one.
One pin, several connections
Draw several connections from one output pin and every connection that takes the record is called, one after another, with the same record. A change one branch makes to the record is visible to the branches after it.
To run branches in parallel, use these flow plugins:
- Scatter sends the record to every connected branch at the same time; Gather waits for all of them and combines the answers.
- Fork runs its branch in the background and returns at once, with an optional limit on how many run together.
To run steps in order with the same record, use Sync call: it runs its Output branch to the end, then sends the same record to Continue.
Branch by condition
Put a Decision router in front of the branches, give each outgoing connection a Route Id, and return the name of the branch from the condition. See Decision conditions.
When nothing matches
- The pin has no connections. The record stops there. That is how you end a branch.
- The pin has connections, but none takes the record. The flow stops with an error, because a record has nowhere to go. Give the connection the right type, use
AnyData, or add a branch for the missing route.
To stop one request on purpose and keep the flow running, use Stop execution; to fail it, use Error and handle the failure with Try catch or Retry.