code: public <T> CompletableFuture<T> submit(Query<T> query) {
      CompletableFuture<T> future = new CompletableFuture<>();
      context.executor().execute(() -> submitQuery(query, future));
      return future;
    }
docs: Submits a query to the cluster.
  
  @param query The query to submit.
  @param <T> The query result type.
  @return A completable future to be completed once the query has been submitted.