Appearance
Flow to flow
Split a large integration into flows that each do one job, and let them use each other. Pick the way by what the calling flow needs back.
| You need | Use |
|---|---|
| To start another flow, without passing data | Start flow |
| To send records to a running flow, and get an answer back | Pipe client → Pipe listener |
| To reuse a flow as a component in many flows | Publish the flow as a plugin |
| To reach a flow on another machine, or from another system | Http client → Http listener, webhooks, or Kafka, MQTT or NATS |
Start another flow
Start flow starts the flow you pick, as if you pressed Start. Its Continue pin fires as soon as the flow has started or, with WaitForFinish, when it has stopped. Use it to chain jobs that run once:
text
Timer → Start flow (import, WaitForFinish) → Start flow (report)The started flow gets no data from the caller. A flow that keeps running, because it has a Timer or a listener, never finishes.
Call a running flow
A Pipe listener is the entry point of a flow that serves other flows; a Pipe client calls it. With a two-way listener the client waits for the answer and sends it on.
text
Customer service: Pipe listener (GetCustomer) → Table reader → Data mapper → Pipe listener Response
Caller: Http listener → Pipe client (Customer service/GetCustomer) → Http responseWhen you pick the listener in the client, the client takes over its request and response types. The called flow is started if it is not running. Errors in the called flow come back as errors of the Pipe client, so a Try catch in the caller handles them. Pipes run between flows on the same machine.
Reuse a flow as a component
Publish a flow as a plugin and it appears in the toolbox like any other plugin. A Plugin port receives the record and a Plugin port response sends the result back. See Publish a flow as a plugin.
Across machines
Between machines, or to and from other systems, use the transport that fits: Http client and Http listener for request and answer, Webhook sender and Webhook receiver for notifications, and the event plugins for streams.
Sync call does not call other flows: it orders steps inside one flow. See Pins and routing.