code: private <T extends Request, U> void sendRequest(T request, BiFunction<Request, Connection, CompletableFuture<U>> sender, CompletableFuture<U> future) {
      if (open) {
        connect().whenComplete((c, e) -> sendRequest(request, sender, c, e, future));
      }
    }
docs: Sends the given request attempt to the cluster.