code: @Nonnull
    @VisibleForTesting
    List<CompletableFuture<AppendEntriesResponse>> sendRequests(final RaftStateContext ctx) {
  
      List<CompletableFuture<AppendEntriesResponse>> responses =
          managers.values().stream()
              .map(ReplicaManager::requestUpdate)
              .collect(toList());
  
      responses.forEach(response ->
          response.thenAccept(result -> {
            updateCommitted();
            checkTermOnResponse(ctx, result);
          }));
  
  
      // Cope if we're the only node in the cluster.
      if (responses.isEmpty()) {
        updateCommitted();
      }
  
      return responses;
    }
docs: Notify the {@link ReplicaManager} to send an update the next possible time it can
  
  @return futures with the result of the update