Catalyst::Engine::Stomp after 0.16
We use Catalyst::Engine::Stomp for all our ActiveMQ consumers. It works rather well, and (especially with the addition of our Net::ActiveMQ) makes working with queues mostly painless. But there is...
View ArticleNAP::policy: an introduction
What is NAP::policy? It’s a pragma, or a “policy” module, to help people at NAP write more uniform code. The module itself is equivalent to a series of use statements, that are considered “a good...
View ArticleFinding memory leaks
One of our programs was leaking memory. Not much, but enough that Tech Ops were not going to allow us to put it into production. Fair enough, I wouldn’t allow it either, if I were on-call. So I did the...
View ArticleActiveMQ, STOMP, and network problems that aren’t
We have processes that communicate via ActiveMQ. They mostly work, but sometimes we get very strange problems. This is the story of one of them. The consumer I’m talking about is written in Perl, using...
View ArticleUsing exception classes in Perl
Exception handling in Perl is, like OO support, very basic: die to throw an exception, eval to catch it into the global $@ variable. What an exception is, what to do when you’ve caught it, and other...
View ArticleRe-Architecting the Document Integrator
In a perfect world, all the data pertaining to a certain domain would be authoritatively held and edited in a single place, and everything else would refer to that place as the source of truth. Of...
View ArticleAsynchronous web services with PSGI and IO::Async
Some of our internal web applications are low-traffic enough that a preforking server can handle them without difficulty. Some others, on the other hand, can really benefit from a non-blocking...
View ArticleReleasing NAP::policy to the world
We published an article on this site, over two years ago, describing our policy / pragma module. Today we are releasing it to the world, in its own public GitHub repository. I’m not going to detail...
View ArticleNAP::Messaging – glue and policies for interacting with ActiveMQ
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...
View Article