Skip to content

titarenko/evque

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

AMQP-based event bus.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •