ActiveMQ is a popular option for companies using message-oriented middleware. As a mature, open source option, it solves many problems inherent in enterprise systems. But what do these ActiveMQ applications look like in real life?
In this blog, we look at three ActiveMQ examples, and discuss how these examples are only the tip of the iceberg.
The beauty of ActiveMQ is that there are so many different ways that you can implement it. It can be applied across industries, programming languages, and technologies. In fact, as long as your system needs to communicate or send messages between a source or a destination, an ActiveMQ based solution can be implemented.
ActiveMQ handles scale and high availability out of the box and elegantly. It handles high availability with its active/passive mechanism in which a passive node can almost instantly take over if an active node fails. This is achieved by using a shared filesystem database (KahaDB by default) which relies on file locks to determine if a node fails.
It handles scalability by offering a myriad of ways in which one can implement a network of brokers (examples below). Store and forward, Peer-to-peer flat duplexing, hub and spoke are some of the ways that one can achieve scale with ActiveMQ.
See ActiveMQ in ActionWant a walkthrough of the ActiveMQ use cases presented in this blog? The webinar below covers the examples below, and two additional in-depth examples.
Want a walkthrough of the ActiveMQ use cases presented in this blog? The webinar below covers the examples below, and two additional in-depth examples.
With the above in mind, we’ve selected a few different ActiveMQ examples to explore in more depth.
For our first ActiveMQ example, we’re looking at a large, global manufacturing company. The company has been around for a while, which means that their systems were designed around mainframes, and they were operating on green screens.
The problem they needed to solve was in consolidating the data produced by each factory, and effectively using that data to help improve their business intelligence (i.e. balancing workloads, making production decisions, etc.).
The system they had in place to centralize that data was synchronous, slow, and incapable of providing the type of real-time data they needed to improve their business intelligence. They wanted a solution that could provide that kind of real-time data without replacing their mainframes.
In order to accomplish this, our team added a message producer to each mainframe, which pushed data into ActiveMQ. There, the data was aggregated into a data lake, where it gets processes and converted into a dashboard. This allowed the team to leverage that data for business intelligence and reporting.
What stands out about this example, for us, is that ActiveMQ marries the older technologies present in their mainframes with a business intelligence-minded approach — allowing the company to achieve their goals without incurring much additional cost.
Another point that makes this use case special is in how ActiveMQ was deployed for both resiliency and scale.
It uses a hub and spoke pattern for scaling, with each factory around the world representing a spoke, and ActiveMQ representing the central hub collecting the application.
For each factory, an ActiveMQ node is applied. Then, for each node, you also have a active/passive redundancy. This helps to prevent issues if the active fails.
The beauty of the system is that none of the nodes are configured as consumers of the data other nodes are producing, which makes the system more resilient against the network slowdowns and timeouts it experiences.
The nodes are also deployed locally, meaning that the individual mainframes never have to deal with latency in pushing the data to those local nodes. They provide the data to the node, then the node manages how that data is queued and relayed to the ActiveMQ hub.
For this use case we’re looking at a public transit authority, specifically a company that manages a network of trains. The company requires a highly available, highly redundant system that can communicate network status at all times.
Using ActiveMQ they deployed a highly available and redundant system consisting of 12 servers per location (six active, six passive) with between five and ten applications per node.
Anytime a node goes down, the active node fails over to the passive node within the active data center. If the entire active data center goes down, then it fails over to the passive servers.
Our final use case looks at a toll authority. This organization runs a network of cameras that capture license plate pictures. Those pictures are then processed by a program that converts it into a readable license plate number, then a program bills the customer for the cost of the toll.
In this case, the cameras that capture the picture are treated as producers, since they create the data which is queued and eventually consumed. The data, in this case, is an actual picture, which makes it a unique use case.
The topology is also special, existing as a flat duplexing network. Add to that statistical fluctuations in traffic patterns, and the system needs to process unique data that occurs in spikes, and that can’t be recaptured. (You can’t very well ask a car to “go back through the toll, please.”)
In order to accomplish this, our team built a flat duplexing topology that connects each node to exactly one other node. Node 1 is connected to Node 2, Node 2 is connected to Node 3, and so on until Node 10. Each node has a active/passive mechanism for failover for handling issues with availability.
The producers then supply messages to any of the nodes, one of which is configured as a TTL. This prevents the produced message from hopping from node to node in an infinite loop without ever being consumed.
The use cases we looked at showcase a variety of potential applications for ActiveMQ. Yet, these examples only represent a small segment of potential applications.
For companies looking for a highly adaptable and powerful way to manage data in enterprise systems, ActiveMQ is well worth a look.
If your team is considering ActiveMQ for your application or system, our team can provide the expert training, guidance, and support you need to make your project a success.
Learn More Talk to an Expert
Want more info on ActiveMQ? The resources below can provide additional insight into ActiveMQ.