Sunday, March 1, 2015

ActiveMQ 6 - ActiveMQ + HornetQ

Having a look at the latest ActiveMQ releases (5.11 specifically although 5.11.1 is out) and the future of the Apollo project which uses a threading and messaging dispatch method (based on HawtDispatch the Java port of libdispatch/Grand Central reactor design), we started to wonder about when we'd see something new presumably in ActiveMQ 6. Looks like there is going to be something new coming.

ActiveMQ 6 looks to be a combination of HornetQ and ActiveMQ with more HornetQ flavor than ActiveMQ.  Since we're still using mostly JMS, HornetQ has been our most likely alternative to ActiveMQ should we want to change; HornetQ has also won some speed tests.  Turns out the two have more in common than we realized - not only is there a decent amount of overlap in capabilities, but both sets of developers largely work for the same company. Commercially ActiveMQ is part of RedHat's JBoss Fuse ESB and HornetQ is the open sourced child of RedHat's JBoss broker.

HornetQ's project manager seems to have raised the idea and the ActiveMQ dev community seems fairly eager to join forces rather than split mind share. Commits to ActiveMQ repos for version 6 look to be working through the incorporation of the code although the page on the official site (at the moment) still mentions Apollo as being the future core of AMQ 6. It also looks like the HornetQ dev forum are seeing the combination as extremely likely to happen.

So, what is going on with the Apollo reworking?  The main developer mentions that it could be the use of Scala that has caused slow uptake by other developers and he was considering porting to Java to fix that.  The HornetQ donation may have saved him the work.

All in all the inclusion of HornetQ plus users or the Apollo core in AMQ 6 would be a good step forward - will have to wait to see what happens.  Might put a few experiences with HornetQ on this blog just in case.