How has it helped my organization?
We use this product to provide us with a real time solution. It has helped us find ways to:
- Message or pass data, aside from hitting and saving data in a database.
- Perform asynchronous messaging.
- Queue database messages so requests are serial, if needed.
- Scale the application by increasing worker nodes via topics and queue load balancing.
What is most valuable?
I appreciate many features including queue, topic, durable topic, and selectors. I also value a different support for different protocols such as MQTT and AMQP. It has full support for EIP, REST, Message Groups, UDP, and TCP.
What needs improvement?
I would like to see the following improvements:
- The way it stores data
- Needs to focus on a certain facet and be good at it, instead of handling support for most of the available message brokers.
- For example, AMQP is a different flavor of message broker. However, adding it to ActiveMQ dramatically shifts its methodology and design. It can handle it, but it will be bad at it. Either you create a new forked solution of AMQ with AMQP and align only with AMQP, or just don't do it.
What do I think about the stability of the solution?
There were stability issues. With a network of brokers, you get a lot of issues, especially if you have the publisher and consumer using the same channel or connection, on different topics and/or queues. It’s causing a lot of issues and weirdness.
What do I think about the scalability of the solution?
Setting up a network of brokers is problematic. The best thing is to do master-slave with a cold backup.
How are customer service and technical support?
It is open source, so you get a very good response from the community. I heard Fuse is good, but I never talked to them.
Which solution did I use previously and why did I switch?
We used to deploy Apache Kafka, as it was best for big data.
How was the initial setup?
The initial setup is easy, and you can embed the ActiveMQ on the test.
Which other solutions did I evaluate?
Depending on the problem, AMQ resolved nearly everything. However, it may not be suitable for complex issues.
What other advice do I have?
For what and where it is used, depending on the project, it will be very good.
For example, if I need to use a web application that will have ability to have an embedded message queue, it can work perfectly.
But if I need to have solution for big data, it may not be the best, especially for large streaming data. It varies by use.
Vet other solutions before implementing anything. Run multiple tests, like multi- thread and flood it with messages, as well as large messages, and combinations of both. See how it behaves.