Introduction to Mule ESB

ESB stands for Enterprise Service Bus. It is a middleware tool for integrating various applications together on a bus-like infrastructure.

  Implementing ESB: The main objective of the ESB architecture is to decouple systems from each other and allow them to communicate in a stable and controllable manner. The implementation of ESB can be carried out using “Bus” and “Adapter” in the following way –

  • The concept of “bus”, came from a mail server like JMS or AMQP, is used to decouple different applications from each other.
  • The “adapter” is used for communication with the main application and for transforming data from application format to bus format, which is used between applications and the bus.

ESB’s Guiding Principles:

We can call this principles as core integration principles. They are as follows –

  • OrchestrationIntegration of two or more services to synchronize data and process.
  • Transformation− Transformation of data from canonical format to application-specific format.
  • Transportation− Management of protocol negotiation between formats such as FTP, HTTP, JMS, etc.
  • Mediation − Provide multiple interfaces to support multiple versions of a service.
  • Non-functional consistency- Provide transaction management and security mechanism.

Need of ESB: The ESB architecture allows us to integrate different applications where each application can communicate through it. Here are some guidelines on when to use ESB –

  • Integrating two or more applications: The use of the ESB architecture is advantageous when it is necessary to integrate two or more services or applications.
  • Integration of more applications in future: Suppose if we want to add more services or applications in the future, this can easily be done using the ESB architecture.
  • Using multiple protocols: If we have to use multiple protocols like HTTP, FTP, JMS, etc., ESB is the right option.
  • Message routing: We can use ESB in case we need message routing based on message content and other similar parameters.
  • Composition and consumption:ESB can be used if we need to publish composition and consumer services.

P2P integration vs. ESB integration:

    With the increase in the number of applications, a big question in front of developers was how to connect different applications? The situation has been handled by manually coding a connection between various applications. This is called point-to-point integration.


Rigidity is the drawback of point-to-point integration. The complexity increases with the increase in the number of connections and interfaces. The disadvantages of P-2-P integration lead to ESB integration. BSE is a more flexible approach to application integration. It encapsulates and exposes each application feature as a set of discrete reusable capabilities. No application integrates directly with others, but rather integrates via a BSE as shown below –


To manage the integration, ESB includes the following two components:

  • Service Registry: Mule ESB has a service register/repository where all the services exposed to BSE are published and recorded. It acts as a discovery point from where one can consume the services and capabilities of other applications.
  • Centralized Administration: As the name suggests, it provides a view of the transactional performance flows of interactions occurring within the BSE.

ESB Functionality: The abbreviation VETRO is generally used to summarize the functionality of ESB. It is as follows –

  • V(Validate): As the name suggests, it validates the validation of the schema. It requires a validation analyzer and an up-to-date diagram. An example is an XML document conforming to an updated schema.
  • E(Enrich) : It adds additional data to a message. The goal is to make the message more meaningful and useful to a target service.
  • T(Transform): It converts the data structure into a canonical format or from a canonical format. Examples are the conversion of date/time, currency, etc.
  • R(Routing): It will route the message and act as the access controller for the endpoint of a service.
  • O(Operate): The main job of this function is to call the target service or interact with the target application. They run to the backend.

The VETRO model offers overall flexibility in integration and guarantees that only consistent and validated data will be routed through the ESB

             For More Information on Mulesoft Visit

Comments are closed