docs: private CompletableFuture<Void> commitInitialEntries() {
      // The Raft protocol dictates that leaders cannot commit entries from previous terms until
      // at least one entry from their current term has been stored on a majority of servers. Thus,
      // we force entries to be appended up to the leader's no-op entry. The LeaderAppender will ensure
      // that the commitIndex is not increased until the no-op entry (appender.index()) is committed.
      CompletableFuture<Void> future = new CompletableFuture<>();
      appender.appendEntries(appender.getIndex()).whenComplete((resultIndex, error) -> {
        raft.checkThread();
        if (isRunning()) {
          if (error == null) {
            raft.getServiceManager().apply(resultIndex);
            future.complete(null);
          } else {
            raft.setLeader(null);
            raft.transition(RaftServer.Role.FOLLOWER);
          }
        }
      });
      return future;
    }