Flows in Mule ESB
An introduction on how using Flows can help you take advantage of Mule ESB's sophisticated message flow capabilities.
Join the DZone community and get the full member experience.Join For Free
Visually compose APIs with easy-to-use tooling. Learn how IBM API Connect provides near-universal access to data and services both on-premises and in the cloud, brought to you in partnership with IBM.
Overview Flows in Mule ESB
Flows provide the most robust and flexible way to build Mule applications, because you can arrange convenient building blocks before being packed into a sequence of event processing messages which have been prepared in accordance with the needs of your application. Flows support mechanism and asynchronous synchronization of the flows, one-way and request - response exchange - the model and other architectural plans.
Flows can be particularly effective for the following use cases:
Simple Integration Tasks
Planning data processing
Integrated cloud-based and on-premise applications
Handling the event that services need to be staged
Mule provides a pair of interfaces for building Flows. We can choose between:
Type the code into an application configuration file based on XML
Using the GUI
Then you configure the building blocks used sequences add Studio graphical tools, or by editing the XML code in the configuration file.
At the simplest level, the sequence of events Flows message processing. As the diagram below illustrates, a message goes to a flow can be:
The units from which Flows is built is known as the Builing Blocks. In general, the corresponding icon on Studio graphics or XML elements in the application configuration file of Mule.
The figure below illustrates a flow set out on Studio:
The following code block representing that same list Flow XML:
<?xml version="1.0" encoding="UTF-8"?> <mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:mulexml="http://www.mulesoft.org/schema/mule/xml" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:scripting="http://www.mulesoft.org/schema/mule/scripting" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:core="http://www.mulesoft.org/schema/mule/core" xmlns:wmq="http://www.mulesoft.org/schema/mule/ee/wmq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="EE-3.2.2" xsi:schemaLocation=" http://www.mulesoft.org/schema/mule/xml http://www.mulesoft.org/schema/mule/xml/current/mule-xml.xsd http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd http://www.mulesoft.org/schema/mule/scripting http://www.mulesoft.org/schema/mule/scripting/current/mule-scripting.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/ee/wmq http://www.mulesoft.org/schema/mule/ee/wmq/current/mule-wmq-ee.xsd "> <flow name="DemoFlow1" doc:name="DemoFlow1"> <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" doc:name="HTTP"/> <expression-transformer doc:name="Expression"/> <append-string-transformer message="" doc:name="Append String"/> <mulexml:xml-to-object-transformer doc:name="XML to Object"/> <component doc:name="Java"/> <logger level="INFO" doc:name="Logger"/> <scripting:component doc:name="Groovy"> <scripting:script engine="Groovy"/> </scripting:component> </flow> </mule>