Orchestration - Routing Messages Between Components
The component contains business logic for processing the data in the message. It does not contain any information about how to receive or send messages themselves. To ensure that the component receives the right messages and routes them properly after processing, an orchestration flow wraps the component (or components) with additional message processors that filter, transform, enhance or route the message to the appropriate component or endpoint. This allows the invocation sequence to be dynamically varied based on the context of the message or the current load or availability of the system.
Processing data using Mule Flows gives you complete flexibility in where and how messages are transformed, filtered, and routed. Each is just another step in the process. If you want to do any kind of sophisticated routing using Mule, it is recommended that you use the Flow pattern.
Mule configuration patterns make it easy to perform common bits of orchestration, for instance, bridging two endpoints. Using configuration patterns where possible simplifies the work required to configure Mule.
When business process orchestration is required, Mule provides a BPM module for enabling different BPM engines within Mule. Business process orchestration should be used for longer running stateful business processes, complex human interactions and approvals, or parallel execution of those types of processes at the business service layer rather than the application layer.