Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

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

How to Transform Your Business in the Digital Age: Learn how organizations are re-architecting their integration strategy with data-driven app integration for true digital transformation.

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

    </scripting:component>

  </flow>

</mule>



Make your mark on the industry’s leading annual report. Fill out the State of API Integration 2019 Survey and receive $25 to the Cloud Elements store.

Topics:
mule esb ,mulesoft

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}