Print this page

Mule is an open source Enterprise Service Bus (ESB).  The main parts of the Mule ESB are:


Consists of

  • the Message receiver (receives data from a channel) or Message dispatcher (sends data over a channel),
  • connector and
  • transformers (changes data from one format to another e.g. JMS text message to String).


Consists of

  • an inbound router (routes inbound messages)
  • a component (contains logic, can be Java POJO, Spring, Groovy or REST) and
  • an outbound router (routes messages after being processed by the component).


A way for an application to communicate with Mule.  Also, channels can be used to connect services within Mule.  Applications connect to channels via endpoints; example endpoints are "" or "jms:inbound-endpoint queue=sales.queue".


A Mule message flow will typically be:

  • an application sends a message over a channel to Mule,
  • within the Transport, the message receiver receives the message and if necessary the message is modified it by a transformer,
  • within the Service the inbound router works out how to handle the message before passing it onto a component to apply logic and pass it to an outbound router,
  • within the Transport a transformer is called and then the message dispatcher puts it onto a destination channel.