Cheap Alternatives to SOA Part 2 - Asynchronous Communications

Post date: Mar 23, 2014 10:30:45 AM

In the context of proprietary SOA frameworks asynchronous communication is often a concern assigned to an Enterprise Service Bus (ESB) which has the responsibility to route messages and transform them at different layers as part of the different business interactions.

If disparate systems interacting with each other in the context of various business transactions are not based on different protocols then the question is if a significant investment in a proprietary SOA framework won't deliver a less efficient cost-benefit analysis than an in house made RESTful solution based on several design patterns dedicated to asynchronous communication.

Patterns such as Request/Acknowledge/Poll and Request/Acknowledge/Callback are perfect examples of implementing such asynchronous interactions with a clean approach based on underlying technologies such as Java Message Service (JMS) and the Correlation Pattern between requests and responses that states the equivalence between the message id of the request and the correlation id of the response.

Such a solution would base itself on other related patterns such as Linked Service (as part of the Request/Acknowledge/Callback strategy) and possibly on Request and Response Mappers which act as mediators in the context of transforming request and response messages to a standardized canonical format, should this be the case.

Although implementing such patterns comes not without complexity and additional effort it is still a valid long term alternative that would prove itself cheaper as the significant investment required by an enterprise proprietary SOA framework and most importantly, it will avoid vendor lock in completely.

Another important aspect is the workflow based interaction but with some carefully chosen set of patterns it can be implemented in a RESTful architecture too. More on this in the upcoming article...