docs: function setupObservers() {
          
          cluster.on('fork', function(worker) {
              logger.log('debug', 'M|worker-id=%d|on=fork', worker.id, meta);
              workerQueue.execute(worker.id, function (err, node, next) {
                  node.state = 'forked';
                  return node;
              });
          });
          
          cluster.on('online', function(worker) {
              logger.log('debug', 'M|worker-id=%d|on=online', worker.id, meta);
              workerQueue.execute(worker.id, function (err, node, next) {
                  node.state = 'online';
                  return node;
              });
          });  
  
          cluster.on('listening', function(worker, address) {
              logger.log('debug', 'M|worker-id=%d|on=listening|address=%s:%d', worker.id, address.address, address.port, meta);
              workerHelperDone('listening', worker);
          });
          
          cluster.on('disconnect', function(worker) {
              logger.log('debug', 'M|worker-id=%d|on=disconnect', worker.id, meta);
              workerQueue.execute(worker.id, function (err, node, next) {
                  node.state = 'disconnected';
                  return node;
              });
          });
          
          cluster.on('exit', function(worker, code, signal) {
              logger.log('debug', 'M|worker-id=%d|on=exit|code=%s|signal=%s|%s', worker.id, code, signal, (worker.suicide ? 'suicide' : 'MURDER'), meta);
              
              // It is normal to have workers exit while we are stopping the engine
              if (state === states.stopping) {
                  workerHelperDone('exited', worker);
              } else if (state === states.restarting || state === states.starting) {
                  // While restarting, it is normal ONLY if the node is not in 'start'
                  // mode (e.g. 'shutdown')
                  var workerWasStarting = true;
                  workerQueue.execute(worker.id, function (err, node, next) {
                      workerWasStarting = (node.action === 'start');
                      return node;
                  });
                  if (workerWasStarting) {
                      logger.log('error', 'M|worker-id=%d|died|%s', worker.id, states.toString(state), meta);
                      workerHelperFailed('start-failed', worker); // The restart command will fail!
                  } else {
                      workerHelperDone('exited', worker);
                  }
              } else if (state === states.running) {
                  // Totally abnormal, let's restart that worker!
                  logger.log('error', 'M|worker-id=%d|died|restarting', worker.id, meta);
                  var newWorker    = startOneWorkerHelper();
                  var startPromise = monitorOneWorkerHelper("start", savedConfig.startTimeoutInMs, newWorker);
                  
                  // Make sure it restart
                  startPromise.then(function (object) {
                      logger.log('verbose', 'M|worker-id=%d|restart|started', newWorker.id, meta);
                  }).fail(function (object) {
                      logger.log('error', 'M|worker-id=%d|restart|FAILED|only %d workers left!', newWorker.id, cluster.workers.length, meta);
                      if (cluster.workers.length === 0) {
                          logger.log('error', 'M|worker-id=%d|restart|FAILED|EXITING|No more workers!', newWorker.id, meta);
                          process.exit(-1);
                      }
                  });
              }
          });
  
          // --- When the MASTER process is killed, lets kill all the worker threads
          //
          process.on('SIGTERM', function () {
              var exitCode = 0;
              if (state === states.running) {
                  logger.log('ino', 'M|SIGTERM|state=%s|all-stop', states.toString(state), meta);
                  stop().then(function () {
                      logger.log('info', 'M|SIGTERM|all workers dead', meta);
                      process.nextTick(function() {
                          logger.log('info', 'M|SIGTERM|exiting|code=' + exitCode, meta);
                          process.exit(exitCode);
                      });
                  }).fail(function() {
                      logger.log('info', 'M|SIGTERM|failed', meta);
                      process.nextTick(function() {
                          logger.log('info', 'M|SIGTERM|exiting|code=' + exitCode, meta);
                          process.exit(exitCode);
                      });
                  }).done();
              } else {
                  logger.log('info', 'M|SIGTERM|state=%s|SIGKILL all workers', states.toString(state), meta);
                  eachWorker(function(worker) {
                      worker.process.kill('SIGKILL');
                  });
                  logger.log('info', 'M|SIGTERM|state=%s|kill-timer=%s', states.toString(state), savedConfig.stopTimeoutInMs, meta);
                  setTimeout(function() {
                      logger.log('info', 'M|SIGTERM|timeout|exit=%d', exitCode, meta);
                      process.exit(exitCode);
                  }, savedConfig.stopTimeoutInMs);
              }
          });
      }