A flow is a Mule component that allows you to order Mule event processors (such as connectors and other components) in a valid arrangement to automate integration processes.

A flow is in essence a chain of event processors. Typically, a flow starts with an event source. When the event source is triggered (for example, through an HTTP Listener), a Mule event is created.


When an event is received or generated by the event source, the flow starts, and the configured event processors are invoked in a chain in the same order as they are configured.

Some event processors accept child event processor elements, which are processed before the remaining processors in the flow are processed.


Flows can connect and trigger other flows.

There are two ways of connecting flows:

  • Through an endpoint, which uses transports (such as HTTP or JMS connectors) to connect the flow to external flows or services.

  • Through a Flow Reference component, which connects flows within the Mule app.

Note that flows always function synchronously. If you need to achieve asynchronous patterns, such as Fire-and-Forget, you can use the Async (<async>) component.

In this topic: