code: @Override
      protected void doStart() {
          log.info("{}: Starting.", this.traceObjectId);
  
          Services.startAsync(this.durableLog, this.executor)
                  .thenComposeAsync(v -> startWhenDurableLogOnline(), this.executor)
                  .whenComplete((v, ex) -> {
                      if (ex == null) {
                          // We are started and ready to accept requests when DurableLog starts. All other (secondary) services
                          // are not required for accepting new operations and can still start in the background.
                          notifyStarted();
                      } else {
                          doStop(ex);
                      }
                  });
      }
docs: region AbstractService Implementation