code: @Override
    public synchronized CompletableFuture<Void> start() {
      if (closeFuture != null) {
        return Futures.exceptionalFuture(new IllegalStateException("Atomix instance "
            + (closeFuture.isDone() ? "shutdown" : "shutting down")));
      }
  
      LOGGER.info(BUILD);
      return super.start().thenRun(() -> {
        if (enableShutdownHook) {
          if (shutdownHook == null) {
            shutdownHook = new Thread(() -> super.stop().join());
            Runtime.getRuntime().addShutdownHook(shutdownHook);
          }
        }
      });
    }
docs: Starts the Atomix instance.
  <p>
  The returned future will be completed once this instance completes startup. Note that in order to complete startup,
  all partitions must be able to form. For Raft partitions, that requires that a majority of the nodes in each
  partition be started concurrently.
  
  @return a future to be completed once the instance has completed startup