*/

require( 'colors' );

var ServiceDiscovery = require('node-discovery');
var _ = require('underscore');
var mq = require('amqp');

var discovery = new ServiceDiscovery();

discovery.advertise({
  name: 'service.register',
  pid: process.pid
});

discovery.need('service.queue');

discovery.on('ready', function(services) {
 console.log( 'service.register:ready'.yellow );

  var rabbit = mq.createConnection(services['service.queue'].config);

  rabbit.on('ready', function() {
    console.log( 'rabbit:ready'.yellow, process.pid );

    var done = _.after(2, function() {

      register.subscribe({ack: true, prefetchCount: 1}, function( message, headers, deliveryInfo) {
        // TODO: register the user

        //console.log('user registration', message);
require('colors');

var discovery = new ServiceDiscovery();

var redis, rabbit;
var register, creation;
var emitter = new EventEmitter();

discovery.advertise({
  name: 'service.web',
  pid: process.pid,
  ready: false
});

discovery.need('service.queue', 'service.data.redis');

discovery.setup('service.queue', function(service, callback) {
  console.log( 'discovery.setup:service.queue', service );

  rabbit = mq.createConnection(service.config);

  rabbit.on('ready', function() {

    return;

    var done = _.after(2, callback);
    var next = _.after(2, function() {
      creation.bind(exchange, '');
      creation.subscribe({ack: false, prefetchCount: 0}, emitter.emit.bind(emitter, 'create'));
      done();