A Seneca.js AMQP-ready thin wrapper.
seneca-amqp
Small module that helps create a pre-configured seneca
(http://senecajs.org/) instance that uses AMQP as its transport layer and eases declaration of clients and listeners.
npm install --save seneca-amqp
Usage
You use this module as a direct replacement for seneca
, which is declared in peerDependencies
(so you can install the version you need). The returned instance uses seneca-amqp-transport
and has a .start
function that'll declare listeners and clients for you (no need to call .listen
or .client
).
var config = seneca: // Any global seneca option timeout: 3000 amqp: // Broker connection settings hostname: 'dev.rabbitmq.com' port: 5672 username: 'guest' password: 'guest' pins: // Pins used in .client and .listen methods client: 'role:entity,cmd:save' listen: 'level:info' 'cmd:rollback,proc:status' autoStart: false; var seneca = config;senecastart ;
Additional features
The seneca
instance created by this module,
- Uses seneca-amqp-transport as its transport layer. There's no need to declare it as en explicit dependency: this module will do that for you.
- Simplifies configuration of the AMQP broker and declaration of client/listeners to a minimum.
- Defines a new
seneca.actAsync
method that behaves like a promisifiedseneca.act
.
In previous versions this was named
seneca.pact
. That is now deprecated. Please, useseneca.actAsync
instead.
- Adds a new
seneca.start
method that returns a promise that fulfills when all clients and listeners have been declared and fired up. - Disables
'mem-store'
by default. It is assumed that stores are listeners in remote microservice wired up in an AMQP fashion.
If you need to enable it back, you can pass
{ seneca: { default_plugins: { 'mem-store': true } }
to the configuration object.
License
MIT