Flows in Mule ESB

DZone 's Guide to

Flows in Mule ESB

An introduction on how using Flows can help you take advantage of Mule ESB's sophisticated message flow capabilities.

· Integration Zone ·
Free Resource

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.

Details Flows

At the simplest level, the sequence of events Flows message processing. As the diagram below illustrates, a message goes to a flow can be:

Image title

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:

Image title

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"/>




mule esb, mulesoft

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}