As part of our service oriented architecture, our Perl applications send messages over ActiveMQ; a few of them also consume those messages and act on them.
All these consumer applications are based on Catalyst
. Initially, we used Catalyst::Engine::Stomp
and a rather complicated set of in-house libraries to wrap it.
Those in-house libraries have, in time, grown to incorporate more and more responsibilities, including testing, logging, message serialisation, plugin loading… it was time to break them apart and write something cleaner.