Let's take a look at some concepts and terminology that you need to know.
Maven Multi Module Project
WSO2 ESB tooling creates separate projects and a separate Maven
pom.xml file for most deployable artifacts. In Maven-centric development, however, you have a parent project and some child modules, including a separate distribution module that is a child module of the parent project. To achieve this model, you can create a Maven Multi Module project in your workspace, create your artifact projects nested within it, and then create the Composite Application project for the distribution module.
Building all deployable artifacts within a Maven Multi Module project allows you to build the deployable artifacts using Continuous Integration (CI) tools.
A REST API allows you receive messages that are sent from the client directly into the ESB and perform specific logic on it based on the instructions in the HTTP call when connecting to a REST backend service. This approach allows you to perform necessary transformations and introduce additional functionality without changing your existing backend service.
A REST API defined in ESB is made up of one or many resources.
An API resource is used by the WSO2 ESB mediation engine to mediate incoming requests, forward them to a specified endpoint, mediate the responses from the endpoint, and send the responses back to the client that originally requested them. We can create an API resource to process defined HTTP request method/s that are sent to the backend service. The In sequence handles incoming requests and sends them to the back-end service, and the Out sequence handles the responses from the back-end service and sends them back to the requesting client.
This defines an external destination for the outgoing message from the ESB. Typically an endpoint is based on a service address or a WSDL.
WSO2 ESB has support for a range of different endpoint types, allowing the ESB to connect with advanced types of backends. For detailed information on each endpoint type available with WSO2 ESB, see WSO2 ESB Endpoints.
A mediator is a full-powered processing unit in the ESB. At run-time, a mediator has access to all the parts of the ESB along with the current message and can do virtually anything with the message. Using mediators, you do various message transformations and orchestrate multiple backend services to achieve the design you want.
A list of mediators that take action on the request, such as transforming its format and then sending it to a back-end service. By default there are three sequences engaged as
Composite Application Project
To deploy the artifacts to WSO2 ESB, we must first package the artifact project/s into a Composite Application (C-App) project. A C-App also allows you to easily port your artifacts from one environment to another. For detailed information on C-Apps, see Introduction to Composite Applications in WSO2 Administration Guide.
Service chaining is a popular use case in ESB, where several services are exposed as a single service, aggregated service. ESB is used for the integration and sequential calling of these services so that the required response can be provided to the client.
Learn how to implement a simple service chaining scenario in this tutorial.
Store and Forward
Store and forward messaging pattern is used in asynchronous messaging. This can be used when integrating with systems that accept message traffic at a given rate and handling failover scenarios. In this pattern, messages are sent to a Message Store where they are temporarily stored before they are delivered to their destination by a Message Processor.
Learn how to implement a store and forward pattern using the in-memory store of ESB in this tutorial.
A connector is a collection of templates that define operations that can be called from the ESB and is used when connecting the ESB to external third party APIs. WSO2 ESB provides a variety of connectors via the WSO2 Connector Store.
Learn how to use a connector in your ESB configuration in this tutorial.