A lot of applications have integration possibilities, so do cloud applications. The question I got from a customer is whether to have a point-to-point integration with Cloud applications or to go through their ESB solution. This blog describes some considerations.
Context
The customer has a HRM application in which job vacancies are managed. Furthermore that system also handles the full applicant process flow. They also have another cloud application that handles the job vacancies. This application posts the jobs to social sites and other channels to promote the vacancies. Furthermore this application has some intelligence for job seekers to advice some new vacancies based on previous visits or profiles. The job vacancies need to be sent to the Vacancies application and applicant information needs to be sent to the HRM application, when a job seeker actually applies for a job. Furthermore status information about the job application is also sent back. This flow of information is depicted in the next figure.
Integration options
Several options are discussed to integrate these cloud applications.
Point-to-point
The two applications have an out-of-the-box integration possibility, so integrating this way is easy.
However also consider:
- Dependent on the cloud suppliers to integrate on infra level
- Monitoring is not conform the guidelines of your company. Maybe there is no monitoring at all.
- Exception handling is not conform the guidelines of your company, so what happens when something goes wrong on integration level
- What happens when one cloud application is migrating to another version? Maybe the other application must migrate as well, and maybe this is not what you want.
- Security: what are the security possibilities of the applications and the integrations? Is this conform company standards? Is this conform regulation requirements?
This option is viable if it is seen as one application function, in which you can see it as 2 modules within the same application. Furthermore integration is taken care of by the two cloud suppliers.
Enterprise Service Bus
In case more control is needed for the integration and job vacancies are also interesting for other applications to integrate (job boards), the ESB solution can also be an option. A lot of companies are still using ESB i.s.o. Microservices architecture. They still have a lot of old applications which need adapters to decouple the systems.
Advantages of this solution:
- Use of common business entity on the ESB to decouple applications
- Monitoring conforming company guidelines
- Exception handling conforming company guidelines
- Reuse of services possible
- Reuse of events for other interested applications
- Company can decide which parts of the application APIs are used
Note that the ESB can be cloud and on-premise.
Disadvantages
- Extra layer
- Company must setup the infrastructure connections themselves