Thursday 6 August, 2009

Difference between ESB and Hub & Spoke

What is an ESB and how is it different from other Integration patterns like point to point and hub and spoke model?. In recent months this is the question most frequently posed to me by people who are about to start a project involving an ESB or who attended sessions on ESB's but still not sure about what exactly is it.

Let me start by first giving the definition of an ESB. ESB is a decentralised middleware infrstructure which facilitates seamless integration with disparate technologies and fostering reusability.

Now lets talk about other two popular design patterns, Point to Point design pattern establishes tight coupling between source and target systems by directly talking to target API. As the systems are tightly coupled there won't be any question of reusability.

In the Hub and Spoke pattern source and target systems are integrated through a centralised Hub. This centralised hub controls the flow of information between disparate technologies. But the main pitfall here is the centralised nature of the Hub itself. If there is any glitch with the Hub, communication between disparate technologies comes to stand still.

Now the difference between ESB and the other two design patterns is Decentralisation and Reusability. These are the two key factors which makes ESB different from other integartion design patterns. In ESB, along with ESB the services that makes an ESB are themselves reusable and they are decentralised which makes it efficient than other design patterns . Since the services in ESB are decentralised it becomes easy for supporting features like clustering,failover where as in hub and spoke model it is a big challenge to support the same.

No comments: