7

I was just reading about Enterprise Service Bus and trying to figure out how to implement it. However, the more I read about it, my conclusion was that it is just a glorified message queue.

I read about it here: What is an ESB and what is it good for?

We use RabbitMQ in our architecture quite a lot and what I was having hard time understanding was that there any many similarities between both concepts:

  • Both are basically post and forget
  • You can post a message of any format in both queues

My question is that what is it that an ESB does and RabbitMQ is not able to do?

Lost
  • 12,007
  • 32
  • 121
  • 193

1 Answers1

4

I have not used RabbitMQ so I wont be able to comment on it. I have used ESB and currently using it.

ESB: It provides you multiple ways of subscribing to your message.Its mostly useful in Publisher-Subscriber model in which topics and subscription is used. You can publish your message payload in topics(similar to queues). Unlike a queue,topic provides us with capability to have more than one subscription for a single topic. This subscription can be divided based on your business need and you can define some kind of filter expression on those topic (also called channel)and with the specified filter a proper subscriber will pull the message from bus. Also one single message can be subscribed by multiple subscriber at a time. If no filtering is used on topics then it means all subscriber for that topic will pull the message from the channel.

This is asynchronous mechanism as you mentioned, post and forget. There is a retry mechanism in ESB where you can try subscribing the message for some number of times I think its 10 times(max) after which its sent in dead queue.

So if your requirement is to connect multiple enterprise system with loosely couple architecture then ESB is a good option.

I hope this was helpful to know about ESB

Imgane5h
  • 304
  • 1
  • 3
  • 16