code: @Override
    public synchronized void onNext(final RuntimeStart runtimeStart) {
  
      LOG.log(Level.FINEST, "RuntimeStart: {0}", runtimeStart);
  
      // Register for heartbeats and error messages from the Evaluators.
      this.remoteManager.registerHandler(
          EvaluatorRuntimeProtocol.EvaluatorHeartbeatProto.class,
          this.evaluatorHeartbeatHandler);
  
      this.remoteManager.registerHandler(
          ReefServiceProtos.RuntimeErrorProto.class,
          this.evaluatorResourceManagerErrorHandler);
  
      this.resourceManagerStatus.setRunning();
      this.driverStatusManager.onRunning();
  
      // Forward start event to the runtime-specific handler (e.g. YARN, Local, etc.)
      this.resourceManagerStartHandler.onNext(runtimeStart);
  
      LOG.log(Level.FINEST, "DriverRuntimeStartHandler complete.");
    }
docs: This method is called on start of the REEF Driver runtime event loop.
  It contains startup logic for REEF Driver that is independent from a
  runtime framework (e.g. Mesos, YARN, Local, etc).
  Platform-specific logic is then handled in ResourceManagerStartHandler.
  @param runtimeStart An event that signals start of the Driver runtime.
  Contains a timestamp and can be pretty printed.