evque

AMQP-based event bus

  • evque

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
evque
300.0.75 years ago7 years agoMinified + gzip package size for evque in KB

Readme

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