seneca-redis-pubsub-transport
seneca-redis-pubsub-transport copied to clipboard
Seneca micro-services message transport over Redis pubsub

A Seneca.js transport plugin for Redis
seneca-redis-pubsub-transport
A transport module that uses redis as it's engine. It may also be used as an example on how to implement a transport plugin for Seneca.
Note: This is broadcast transport. All subscribed micro-services receive all messages.
If you are new to Seneca in general, please take a look at senecajs.org. We have everything from tutorials to sample apps to help get you up and running quickly.
If you're using this module, and need help, you can:
- Post a github issue,
- Tweet to @senecajs,
- Ask on the Gitter.
Seneca compatibility
Supports Seneca versions 1.x - 3.x
Install
To install, simply use npm. Remember you will need to install Seneca.js if you haven't already.
npm install seneca --save
npm install seneca-redis-pubsub-transport --save
In order to use this transport, you need to have a redis daemon running. The deamon and instructions on how to install can be found on the redis install page.
Quick Example
require('seneca')()
.use('seneca-redis-transport')
.add('foo:two', function(args, done) {done(null, {bar:args.bar})})
// if you need this micro-service to publish & subscribe to commands add client & listen
.client({type:'redis'}) // add client to be able this micro-service to publish
.listen({type:'redis'}) // add listen to be able this micro-service to subscribe
Running Examples
In order to run the examples we provide the required docker configuration
in docker-compose.yml and the folder docker. Just run docker-compose up in
the root folder and it should bring up a redis server. Please be aware that if you
are using docker-machine the ip running the redis server is the ip of your docker-machine.
In order to find the ip of your docker-machine just execute:
docker-machine ip <your-docker-machine-name>
Example Using Redis Server Url
require('seneca')({
transport: {
redis: {
// you can use The URL of the Redis server. Format:-
url: "[redis:]//[[user][:password@]][host][:port][/db-number][?db=db-number[&password=bar[&option=value]]]"
}
}
})
.use('seneca-redis-transport')
(More info available About Url Format at IANAl ).
Contributing
The Senecajs org encourages open participation. If you feel you can help in any way, be it with documentation, examples, extra testing, or new features please get in touch.
License
Copyright Richard Rodger and other contributors 2014 - 2016, Licensed under MIT.
