docs: public static void runWith(
        String[] args, Function<BenchmarkSettings, AbstractBenchmarkState<?>> benchmarkStateFactory) {
  
      BenchmarkSettings settings = BenchmarkSettings.from(args).build();
  
      AbstractBenchmarkState<?> benchmarkState = benchmarkStateFactory.apply(settings);
  
      benchmarkState.runForAsync(
          state -> {
            LatencyHelper latencyHelper = new LatencyHelper(state);
  
            BenchmarkMeter clientToServiceMeter = state.meter("meter.client-to-service");
            BenchmarkMeter serviceToClientMeter = state.meter("meter.service-to-client");
  
            ThreadLocal<Mono<Client>> clientHolder =
                ThreadLocal.withInitial(() -> state.createClient().cache());
  
            return i -> {
              Mono<Client> clientMono = clientHolder.get();
              return clientMono.flatMap(
                  client -> {
                    clientToServiceMeter.mark();
                    return client
                        .requestResponse(enrichRequest())
                        .map(RequestOneScenario::enrichResponse)
                        .doOnNext(
                            msg -> {
                              serviceToClientMeter.mark();
                              Optional.ofNullable(msg.data())
                                  .ifPresent(ReferenceCountUtil::safestRelease);
                              latencyHelper.calculate(msg);
                            })
                        .doOnError(th -> LOGGER.warn("Exception occured on requestResponse: " + th));
                  });
            };
          });
    }