docs: public CompletableFuture<OpenSessionResponse> openSession(OpenSessionRequest request) {
      CompletableFuture<OpenSessionResponse> future = new CompletableFuture<>();
      if (context.isCurrentContext()) {
        sendRequest(request, protocol::openSession, future);
      } else {
        context.execute(() -> sendRequest(request, protocol::openSession, future));
      }
      return future;
    }