How has it helped my organization?
It has improved message processing. It removes the tight coupling and asynchronous invocation.
What is most valuable?
- Sequential message processing.
- Message broadcasting: There could be a use case sending the same message to all consumers. So as a producer, I broadcast the message to a topic. Then, whichever consumers are subscribed to the topic can consume the same message.
- JMX console: Provides a UI to visualize a list of queues and topics on the broker. We can see any pending message for particular topic/queue. It displays how many consumers are connected to a topic/queue. We can send a message from the JMX console to a topic/queue without the need of a producer to distribute the message.
What needs improvement?
- Distributed message processing would be a nice addition.
- An older version of ActiveMQ only provided failover, without a message spread across multiple nodes/broker. As with clusters (three nodes/broker), if one of the nodes goes down, other nodes should take the message and process it. If a message is consumed by a client, there was only one way to get the same message again.
What do I think about the stability of the solution?
We did not encounter many stability issues.
What do I think about the scalability of the solution?
We did not encounter many scalability issues.
How are customer service and technical support?
It’s open source, so we can’t expect more tech support. But the documentation has helped a lot.
Which solution did I use previously and why did I switch?
We used JMS embedded in an application. Because of scalability issues, the JMS console, and isolation, we switched to ActiveMQ.
How was the initial setup?
The setup was straightforward. Just download the extract and begin the startup script. That’s it.
What's my experience with pricing, setup cost, and licensing?
I use open source with standard Apache licensing.
What other advice do I have?
ActiveMQ is a great messaging system for synchronizing call and "fire and forget" types of calls. It can be integrated with Spring, Camel, and Struts.