npm.io
0.0.7 • Published 8 years ago

evque

Licence
MIT
Version
0.0.7
Deps
4
Size
26 kB
Vulns
6
Weekly
0
Stars
4

evque

AMQP-based event bus.

Build Status Coverage Status

Installation

npm i evque --save

Description

Each event = exchange of fanout type, named after event.

Each subscriber = queue bound to exchange, named after event and subscriber.

Diagram

Motivation

  • simple project bootstrap
  • events are preserved across broker restarts
  • events will wait for their listeners (will not disappear if listener is offline)

Example

var bus = require('evque')('amqp://localhost');

bus.on('error', function (ev) {
	console.log(
		'listener %s failed to handle event %s (%j) due to %s',
		ev.listener, ev['event'], ev.data, ev.error.stack
	);
});

bus.on('connection-error', function () {
	console.log('connection closed by RabbitMQ. Restart your app?');
});

bus.subscribe('event1', 'listener1', function (data) {
	console.log('listener1 received event1 (%j)', data);
});

bus.subscribe('event1', 'listener2', function (data) {
	console.log('listener2 received event1 (%j)', data);
});

bus.publish('event1', { a: 'b' });

License

MIT