What is our primary use case?
ActiveMQ inside AP is one of those powerful features because we generally use ActiveMQ for acting on incidents which do not involve any human interaction or personal activity. For example, you have to act on some response which is being received by another third-party system, and we totally have no idea when that response would be coming. In that case, you can set up an ActiveMQ, and whenever any message gets sent to that ActiveMQ it can react based on your configurations, and you can trigger some processes, calls, or signals.
ActiveMQ is beneficial in cases where we do not know when the response will come and when we do not know who is sending that response. We do not know the sender, sending time, or message type. In such cases, we can configure multiple MQs and configure actions for them. Depending on the message body, sender, type of message, and timing, it will react. This reduces human interactions and manpower efficiency efforts.
What is most valuable?
The best feature of ActiveMQ is the integration capability because it reads an XML structure which is understandable to every system we currently have. If any client or service is sending any response, we can translate it to JSON or XML at any time. ActiveMQ works on XML and has no limitations regarding system interactions. It can interact with any type of system and has no language dependency.
Inside AP, ActiveMQ's ability to support different messaging protocols is configurable. Inside AP, MQ supports specific protocols that are configurable from the platform body. The protocol must be chosen based on the request type. For example, if we have JSON, the protocol can be different, and if we have XML, the protocol can be different. It supports whatever is configured.
What needs improvement?
With ActiveMQ there should be more options. If you work with other technologies, for example, Java, there are many options. We can integrate the way we want ActiveMQ. We can create partitions and clusters, but AP is not providing such options currently. It only provides time, request response timing, the number of requests that need to be handled, and protocol types. The configuration needs to be broadened inside AP to perform in a better way.
Sometimes issues arise in production with ActiveMQ due to the number of requests. For example, if you have configured one thousand requests at a time and it receives one thousand and one messages at a time, it breaks. The configuration aspect is tricky. When configurations are proper, ActiveMQ almost has zero errors.
For how long have I used the solution?
Inside AP, I have been working with ActiveMQ for approximately eight years, including changes in Swimlane and AP applications.
What was my experience with deployment of the solution?
The deployment process with ActiveMQ is straightforward as it involves export and import functionality. AP automatically creates a JAR with an AWS export extension, which contains all objects and configurations. This export simply needs to be imported into other environments.
ActiveMQ's dual deployment capabilities have limitations because the AWS import functionality does not work on every environment. It requires proper setup, including the JAR and standalone components. Studio accessibility must be present, otherwise the AWS import will not function.
What do I think about the stability of the solution?
ActiveMQ is stable. If the server goes down, that is a different scenario, but apart from that, it is very stable. It can react to any number of requests when configured properly. There is no scenario where a message comes to ActiveMQ and it does not react. If the message is received properly and the configuration is correct, it will react accordingly.
How are customer service and support?
The technical support for ActiveMQ is managed through a separate community. If support personnel are not available, tickets must be created, which can take between two to three days or up to weeks for resolution. It is suggested to have one person dedicated for support.
How would you rate customer service and support?
Which solution did I use previously and why did I switch?
Before ActiveMQ, I had not worked with any other MQ services or MQ software in my experience.
How was the initial setup?
The initial setup and first deployment of ActiveMQ is fairly simple. You just need to have the setup in your scripting which should be able to understand AWS import and have the standalone components.
What other advice do I have?
Regarding clustering, I am not entirely sure about how it works with ActiveMQ. In our application, AP itself has two to four clusters, and in each cluster, the MQs are placed differently. The same MQ is not used in four clusters, as each cluster has its own MQ.
There are three important aspects of ActiveMQ: clustering, determining how many instances each cluster needs, and the configuration part.
On a scale of 1-10, I rate ActiveMQ an 8.
Which deployment model are you using for this solution?
Public Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Amazon Web Services (AWS)