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 = connection.createPushQueue('todo-items');
push.publish({job: 'clean pool'});
var pull = connection.createPullQueue('todo-items');
pull.subscribe(function(msg) {
console.log('TODO:', msg);
connection.close();
});
- See API and StrongLoop