2.3.0 • Published 9 years ago

commissioner v2.3.0

Weekly downloads
24
License
MIT
Repository
github
Last release
9 years ago

commissioner

Build Status Version

commissioner is a small configuration helper for node.js services. It will help you if meet the following:

  1. use Docker/Docker Compose (linked containers),
  2. and/or use consul for service discovery,
  3. you don't want to care about environment in which you application runs, you just want to get IP and port of dependent service.

Example

var service_name = 'redis';
var service_port = 6379;

commisioner(service_name, service_port, function(err, records) {
  console.log(records[0].addr);
  console.log(records[0].port);
});

or with fallback

var options = {
  fallbackAddr: 'localhost',
  fallbackPort: 6379
};

commisioner(service_name, service_port, options, function(err, records) {
  console.log(records[0].addr);
  console.log(records[0].port);
});

Strategy

  1. Query DNS (SRV) for <service_name>.consul.service and return records, if not found goto #2.
  2. Query DNS (SRV) for <service_name>-<port>.consul.service and return records, if not found goto 3.
  3. Get ADDR/PORT from ENV (Environment Variables in container) and return, if not found goto 4.
  4. if fallback ADDR and PORT passed, return them, otherwise return error.