What is most valuable?
It has solved issues such as queue processing, real-time data processing and decrease count of Cron jobs.
The management of Cron jobs is very hard for me. If you are using RabbitMQ, you may not need a Cron job since you can create a consumer for a queue and listen to the queue in real-time. For example, you need to send an email for your new members but you want to do this from your software. The reason being if you encounter an SMTP error, you should handle it or sending an email from your membership activity can take about 5-10 seconds. If you don't use RabbitMQ, you need to create a Cron job and check for new members to send an email to them. But, if you use RabbitMQ, you do not need a Cron job. You can send a message to your queue and consume it in real-time and then send the email.
How has it helped my organization?
I have used this solution for changing stock of products in an e-commerce project. We update the stock of products from RabbitMQ. Some of our clients can change the stock of a product, i.e., either increase or decrease it. They send the stock count to RabbitMQ as a message and our e-commerce platform changes the stock when it gets the message. Consequently, we update the database, cache, search engine service and so on.
There are too many advantages of using this solution. You can scale your processes and update your data in a nearly synchronous way.
What needs improvement?
RabbitMQ needs 2 additional features:
- It is lacking a good dashboard on the web interface; maybe they can develop a dashboard for monitoring.
- There is no alert mechanism. For example, sometimes consumers may be killed or the input messages in queues are greater than the consumed messages. Thus, I would like them to define a rule for alert; maybe they can develop an alert mechanism.
For how long have I used the solution?
I have used this product for three or four years.
What do I think about the stability of the solution?
I have not encountered any stability issues.
What do I think about the scalability of the solution?
I have not encountered any scalability issues either.
How are customer service and technical support?
Since it is open source, you can resolve your problems either from forums or Stack Overflow in regards to RabbitMQ.
Which solution did I use previously and why did I switch?
We have used different solutions before. We have tried MySQL as a queue and it was terrible.
How was the initial setup?
It is not complex.
However, if you try sharding or cluster, it is just a little complex because of Erlang.
What about the implementation team?
Which other solutions did I evaluate?
I did not look into other solutions.
What other advice do I have?
I would recommend this product. It is great and resolves a lot of problems.