Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are benefits of using RabbitMQ in Erlang?

I am learning Erlang and I came from a good Python background. I used RabbitMQ with Celery in my projects.

While Erlang has a very powerful messaging and concurrency capabilities, what are benefits of using RabbitMQ with Erlang? Am I missing the point? Why shouldn't I rely on native features of Erlang instead of adding another layer of complexity to my project environment?

like image 487
Farshid Ashouri Avatar asked Jul 02 '16 22:07

Farshid Ashouri


1 Answers

if you're doing erlang to erlang communication, you don't need something like rabbitmq.

if you need robustness in the form of crash resilience, knowing whether or not a job was started or completed, being able to let a back-end process go down and not worry too much about losing work, etc. then rabbitmq would make sense.

additionally, if you want to communicate between more than one language - erlang and ruby or node.js, c#, c++, python, etc. rabbitmq makes that easy.

with rabbitmq, you get a decoupled, distributed system, using a broker vs a distributed system that is brokerless (https://www.rabbitmq.com/blog/2010/09/22/broker-vs-brokerless/)

this is not a "better" thing, always. but a different thing. broker and brokerless are both valid and useful.

like image 91
Derick Bailey Avatar answered Nov 08 '22 21:11

Derick Bailey