In this tutorial we will review Spring Integration and the problem statement that it solves. We will also review other integration alternatives; Mule ESB and Camel.

What is Spring Integration?

On one side, you want to have components that allow you to communicate with other services, but on the other side you also want to have some sort of workflow-capabilities in order to orchestrate your business processes.

Spring Integration uses as pipes-and-filters as building blocks to support modularity and flexibility in both intra-application and inter application scenarios.

Major EAI approaches ...

File Transfer: System interacts via files. For example an external provider can put files on a FTP server which contains input for other application.

Shared Database: Two systems interact via same database. For example in a SaaS environment, catalogue of product can be stored at same DB location which different vendors can use.

Remote Procedure Call: The Avatars are SOAP and REST (mostly REST)

Messaging: JMS architecture

EAI

Enterprise Application Integration (EAI) is an application of technology defined as the integration of data and services between applications

Alternatives to Spring Integration

Mule ESB : It is a standard server, solution are developed and deployed inside them. Mule is one of the most prominent and stable solution s in market.

Apache Camel: Has the greater availability of components compared to Spring Integration, as well as its adoption by other frameworks such as ActiveMQ and ServiceMix.

Interestingly, Apache Camel provides a component that allows you to integrate Apache Camel with Spring Integration.

Spring Batch

If your business requirement is to process large amounts of data, you may also want to consider Spring Batch which is specifically designed for batch processing requirements. Visit the Spring Batch website for integrating it with Spring Integration.