code: protected final O execute(@Nullable EventLoop eventLoop,
                                HttpMethod method, String path, @Nullable String query, @Nullable String fragment,
                                I req, BiFunction<ClientRequestContext, Throwable, O> fallback) {
  
          final ClientRequestContext ctx;
          if (eventLoop == null) {
              final ReleasableHolder<EventLoop> releasableEventLoop = factory().acquireEventLoop(endpoint);
              ctx = new DefaultClientRequestContext(
                      releasableEventLoop.get(), meterRegistry, sessionProtocol, endpoint,
                      method, path, query, fragment, options(), req);
              ctx.log().addListener(log -> releasableEventLoop.release(), RequestLogAvailability.COMPLETE);
          } else {
              ctx = new DefaultClientRequestContext(eventLoop, meterRegistry, sessionProtocol, endpoint,
                                                    method, path, query, fragment, options(), req);
          }
  
          return executeWithFallback(delegate(), ctx, req, fallback);
      }
docs: Executes the specified {@link Request} via {@link #delegate()}.
  
  @param eventLoop the {@link EventLoop} to execute the {@link Request}
  @param method the method of the {@link Request}
  @param path the path part of the {@link Request} URI
  @param query the query part of the {@link Request} URI
  @param fragment the fragment part of the {@link Request} URI
  @param req the {@link Request}
  @param fallback the fallback response {@link BiFunction} to use when
  {@link Client#execute(ClientRequestContext, Request)} of {@link #delegate()} throws