clustering of applications on top of message queues
strong-mq is an abstraction layer over common message distribution patterns, and several different message queue implementations, including cluster-native messaging.
It allows applications to be written against a single message queue style API, and then deployed either singly, or as a cluster, with deploy-time configuration of the messaging provider. Providers include native node clustering, allowing no-dependency deployment during test and development. Support for other providers is on-going, and 3rd parties will be able to add pluggable support for new message queue platforms.
% npm install strong-mq % npm test
If you get an assert during require of strong-mq about multiple versions being initialized, then some of the modules you are depending on use strong-mq, but do not specify it as a peerDependency. See strongloop/strong-cluster-connect-store as an example of how to correctly specify a dependency on strong-mq in a module. An application can depend on strong-mq with a normal dependency.
An example of connecting to a server and listening on a work queue:
var connection = require'strong-mq'create'amqp://localhost'open;var push = connectioncreatePushQueue'todo-items';pushpublishjob: 'clean pool';var pull = connectioncreatePullQueue'todo-items';pullsubscribeconsole.log'TODO:' msg;connectionclose;;