Overall Satisfaction with RabbitMQ
We currently use RabbitMQ to manage a majority of our outgoing emails, text messages, and faxes from a variety of different systems across the entire business. RabbitMQ sends outgoing notifications by brokering messages from producer (the source system) to consumer (the destination endpoint). For faxing our MQ instance takes in a message, generates a binary PDF file and drops it on an ActiveFax server (running on Windows 2012). For email notifications, we integrate of office 365 and for SMS we use a cloud-base provider. We a system to manage and store outgoing templates which are used during the message brokering process to send the correct notification template
- High Performance
- Integrates well with Spring
- Easy Setup
- Not a lot of tooling
- Hard to get into the internals
- Not incorporated in many enterprise systems
- Solved outgoing communication issues
- Solved performance issues with traditional request/response services
- Solved batch image processing issues (in conjunction with other solutions)
RabbitMQ is very usable if you are a programmer or DevOps engineer. You can setup and configure a messaging system without any programmatic knowledge either through an admin console plugin or through a command-line interface. It's very easy to spin up additional consumers when volume is heavy and it's very easy to manage those consumers either through automated scripting or through their admin console. Because it's language agnostic it integrates with any system supporting AMQP.
I gave it a 10 but we do not have a support contract with any company for RabbitMQ so there is no official support in that regard. However, there is a community and questions asked on StackOverflow or any other major question and answer site will usually get a response.
None of the options in the list are really similar products. We use Apache Camel in conjunction with RabbitMQ and we also use Oracle Integration Cloud and WSO2 for messaging. Integration Cloud is SaaS-based and low code, so it's drastically different in that regard. WS02 is more similar in that it is much less abstracted but supports a wider range of message types.
RabbitMQ is well suited to send asynchronous messages across distributed systems. We currently use it for outgoing notifications but also use it for image processing, batch processing, streaming, and other purposes. For example, we also use RabbitMQ in conjunction with Apache Camel to poll a file system for technical design files, parse those files, then fan the containing information into several different systems. Additionally, we use RabbitMQ for any long performing services (usually requested by a user from a browser) that do not require immediate feedback.