This documentation is for WSO2 Enterprise Service Bus version 4.8.1 . View documentation for the latest release.

All docs This doc
Skip to end of metadata
Go to start of metadata


Components in the Carbon platform add functionality to all WSO2 Carbon-based products. For example, the statistics component enables users to monitor system and service level statistics. A component in the Carbon platform is made up of one or more OSGi bundles, which is the modularization unit in OSGi similar to a JAR file in Java. For example, the statistics component contains two bundles: one is the back-end bundle that collects, summarizes, and stores statistics, and the other is the front-end bundle, which presents the data to the user through a user-friendly interface. This component-based architecture of the WSO2 Carbon platform gives developers flexibility to build efficient and lean products that best suit their unique business needs simply by adding and removing components.

Default Endpoint

A default endpoint is an endpoint defined for adding Quality of Service (QoS) and other configurations to the endpoint, which is resolved from the To address of the message context.

Defined Endpoint

A defined endpoint is an endpoint which is saved in the synapse configuration. 

Dynamic Endpoint

A dynamic endpoint is an endpoint saved in the registry. This can cause minor performance degradations, but endpoints saved in the registry can be easily modified. Therefore, dynamic endpoints are recommended for situations where the endpoint needs to be frequently modified. 


See Enterprise Integration Patterns (EIP).


An endpoint is a specific destination for a message. It may be specified as an Address endpoint, WSDL endpoint, a Failover group, a Loadbalance group, and more. Endpoints can be added, edited, and deleted.

Embedded Registry Instance

The Embedded Registry Instance makes use of the embedded ESB database. This is a H2 database and the data files are stored by default in the directory named ESB_HOME/repository/database. If you run the ESB in the embedded registry mode, you should be careful not to alter manually any files stored in this directory as that might lead to database corruption or data loss.

Event Sources

An Event Source is used to define the event source and the subscription manager configuration used in the eventing implementation of WSO2 ESB. An Event Source provides a service URL that can be used to the send subscriptions and events (events that are not required to go through a mediation flow).

Failover Endpoint

Failover endpoints send messages to the listed endpoints with the following failover behavior. At the start the first listed endpoint is selected as the primary and all other endpoints are treated as backups. Incoming messages are always sent only to the primary endpoint. If the primary endpoint fails, the next active endpoint is selected as the primary and failed endpoint is marked as inactive. Thus, it sends messages successfully as long as there is at least one active endpoint among the listed endpoints.

Fault Sequence

A Fault Sequence is a default sequence which logs the message including the payload and any error/exception encountered and stops further processing. The Fault Sequence executes whenever WSO2 ESB itself encounters an error while processing a message or when a fault handler is not defined to handle exceptions. A sequence can assign another named sequence as its "fault" handler sequence and control branches to the fault handler if an error is encountered during the execution of the initial sequence.

Indirect Endpoint

An Indirect Endpoint refers an actual endpoint by a key. This endpoint fetches the actual endpoint at runtime. Then it delegates the message sending to the actual endpoint. When Endpoints are stored in the registry and referred, this endpoint can be used. The key is a static value for this endpoint.

In-line Sequences

In-line sequences have their child mediators defined inside the sequence itself.
<sequence name="string">other mediators</sequence>



Java Message Service (JMS)

Java Message Service (JMS) is a widely used API in Java-based Message Oriented Middleware. It facilitates loosely coupled, reliable, and asynchronous communication between different components of a distributed application. JMS supports two models for messaging as follows: 

  • Queues: point-to-point
  • Topics: publish and subscribe


The keystore used to encrypt administrator passwords and other confidential information in Carbon is configured in ESB_HOME/repository/conf/carbon.xml file. This keystore configuration can be found under the <security> element of the carbon.xml file.

Load Balanced Endpoint

A Load balanced Endpoint distributes the messages (load) arriving at it among a set of listed endpoints by evaluating the load balancing policy and any other relevant parameters.

Local Registry Entries

The Local Registry Entries are used to define locally resources such as scripts, schemas, WSDLs, policies and other resources in a configuration. They are not uploaded or fetched from the Integrated Registry. They are static. An entry that exists in the Local Registry has higher precedence over an entry with the same name that exists in the integrated registry.

Main Sequence

A main sequence is a default sequence, which simply sends a message without mediation.

Mediation Configuration

A mediation configuration is the most important part of the WSO2 ESB as far as the functionality of the service bus concerns. The mediation configuration consists of the following items:

  • Endpoints
  • Sequences
  • Proxy services
  • Scheduled tasks
  • Event sources
  • Local entries
  • Priority executers (new in ESB 3.0)

Mediation Sequence

A mediation sequence, commonly called a "sequence", is the List Mediator of the ESB. That means it can hold other mediators and execute them. It is a part of the core of ESB and message mediation cannot live without this mediator. When a message is delivered to a sequence, it sends the message through all its child mediators.


A mediator is a full powered processing unit in ESB. It is a component that performs some mediation action on a message during the process flow. Thus, a mediator gets full access to a message at the point where it is defined to gain control and could inspect the message, modify it or take an external action depending on some attributes or values of the current message.

Named Sequences

Named sequences refer other sequences using a key. This allows reusing of sequences.
<sequence key="name"/>


Acronyms for "plain-old Java object" and "plain-old XML", meaning a standard Java object or XML file.

Port offset

The port offset feature allows you to run multiple WSO2 products, multiple instances of a WSO2 product, or multiple WSO2 product clusters on the same server or virtual machine (VM). The port offset defines the number by which all ports defined in the runtime such as the HTTP/S ports will be offset. For example, if the HTTP port is defined as 9763 and the portOffset is 1, the effective HTTP port will be 9764. Therefore, for each additional WSO2 product, instance, or cluster you add to a server, set the port offset to a unique value (the default is 0).

Port offset can be passed to the server during startup as follows:
./ -DportOffset=3

Alternatively, you can set it in the Ports section of <PRODUCT_HOME>/repository/conf/carbon.xml as follows:

Priority Executors

Priority Executors can be used to execute sequences with a given priority. Priority Executors are used in high load scenarios where user wants to execute different sequences with different priorities. This allows user to control the resources allocated to executing sequences and prevent high priority messages from getting delayed and dropped. Priority has a valid meaning comparing to other priorities specified. For example, if we have two priorities with value 10 and 1, message with priority 10 will get 10 times more resources than messages with priority 1.

Proxy Services

A Proxy Service is a virtual service hosted in the ESB runtime. The proxy service mediates any accepted requests and forwards them to a specified endpoint, most of the time to an actual Web Service. The responses coming back from the target endpoint are mediated back to the client which sent the original service request. Proxy services often make references to sequences, endpoints and local entries. A proxy service can enforce various QoS requirements on a request and can be exposed over a user specified transport. Therefore they are often used to expose existing Web Services over a different transport or a QoS configuration. For example, a proxy service can be used to expose an HTTP service over JMS or it can be used to expose an unsecured service in a secured manner using WS-Security standards.
Unlike sequences and endpoints, which can be stored and loaded from the registry, proxy services cannot be loaded from the registry. However? a proxy service can make references to sequences and endpoints stored in the registry.

Resolving Endpoint

A Resolving Endpoint refers an actual endpoint using a dynamickey. The key is a XPath expression. The XPath is evaluated against the current message and the key is calculated at run time. Then Resolving Endpoint fetches the actual endpoint using the calculated key. Then it delegates the message sending to the actual endpoint. When Endpoints are stored in the registry and referred, this endpoint can be used.

Representational State Transfer (REST)

Representational State Transfer (REST) provides a lightweight approach for building distributed systems. Instead of relying on overly complicated protocol stacks and heavyweight middleware, REST facilitates communication between systems by leveraging simple message formats and open protocols that power the Web. You can send and receive RESTful messages through the ESB using a proxy service or API.

Service Provider Endpoint

WSO2 Enterprise Service Bus acts as a central distribution point, which distributes messages received from clients to the relevant service provider endpoints.


A Sequence element is used to define a Sequence of mediators that can be invoked later as a Sequence. If the configuration defines a Sequence named "main", then it is considered as the main mediation Sequence of the ESB. If such a Sequence is not defined locally and a registry has been specified, the registry is looked up for a key named "main" to find the main mediator Sequence. If the user does not define a main or fault Sequence, ESB will create default Sequences.


A servlet is a small Java program that runs within a Web server. Servlets receive and respond to requests from Web clients, usually across HTTP, the HyperText Transfer Protocol.

Servlet container

The Servlet Container (such as Apache Tomcat) is an application that monitors a port on a given IP address. Servlets generate responses to HTTP requests. To do so, the container loads your servlet (if it is not in memory already) and calls the methods defined in the interface. This is the foundation of servlet and JSP architecture.


An XML-based, extensible message envelope format, with "bindings" to underlying protocols. The primary protocols are HTTP and HTTPS, although bindings for others, including SMTP and XMPP, have been written.

Subscription manager

A subscription manager configured inside the Event Wource is responsible for keeping track of the subscriptions and provide operations to manage the subscriptions.

synapse-config Directory

The synapse-config Directory houses the Mediation Configuration (Synapse Configuration) of WSO2 ESB and contains several files and subdirectories. Usually the following set of child directories is available in the synapse-config Directory: endpoints, event-sources, local-entries, priority-executors, proxy-services, sequences, tasks.


A Task is a custom Java class that implements the org.apache.synapse.startup. Task interface that defines a single public void execute() method. Such a Task can be scheduled and managed via the ESB. The scheduling information for a Task can be specified in the cron format or a simple format by the user. A Task may also be specified as a one-time Task where required and can be used to trigger a callout or inject a message into the ESB.


A protocol for publishing and discovering metadata about Web services, to enable applications to find Web services, either at design time or runtime.


WS-Addressing was originally designed as the way to convey connection state or context in SOAP messages, emulating the contextualization mechanism provided by HTTP headers in conjunction with stored cookies. This makes it possible to contextualize message exchanges in a similar way, independently of the transport used.


Is a machine-processable specification of the web service's interface written in WSDL. It defines the message formats, datatypes, transport protocols, and transport serialization formats that should be used between the requester agent and the provider agent. It also specifies one or more network locations at which a provider agent can be invoked and may provide some information about the message exchange pattern that is expected. In essence, the service description represents an agreement governing the mechanics of interacting with that service.


An XML format allows service interfaces to be described along with the details of their bindings to specific protocols. It is typically used to generate server and client code and for configuration.

WSDL Endpoint

WSDL Endpoint is an endpoint definition based on a specified WSDL document. The WSDL document can be specified either as a URI or as an inlined definition within the configuration.

WSO2 ESB Management Console

WSO2 ESB Management Console is a Web based control panel powered by JSP and AJAX which enables system administrators to interact with a running ESB instance without touching any underlying configuration files. The Management Console allows the users to command and control proxy services, sequences, transports, local entries, registry, modules, endpoints and much more.

WSO2 Enterprise Service Bus Endpoint

This is a representation of a service provider endpoint which lies inside WSO2 Enterprise Service Bus configuration.

  • No labels