evque

0.0.7 • Public • Published

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

Package Sidebar

Install

npm i evque

Weekly Downloads

0

Version

0.0.7

License

MIT

Unpacked Size

27.1 kB

Total Files

6

Last publish

Collaborators

  • titarenko