docs: protected void connectionBuilder(Mono<SocketAddress> socketAddressSupplier, ConnectionBuilder connectionBuilder,
              RedisURI redisURI) {
  
          Bootstrap redisBootstrap = new Bootstrap();
          redisBootstrap.option(ChannelOption.WRITE_BUFFER_HIGH_WATER_MARK, 32 * 1024);
          redisBootstrap.option(ChannelOption.WRITE_BUFFER_LOW_WATER_MARK, 8 * 1024);
          redisBootstrap.option(ChannelOption.ALLOCATOR, BUF_ALLOCATOR);
  
          SocketOptions socketOptions = getOptions().getSocketOptions();
  
          redisBootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS,
                  Math.toIntExact(socketOptions.getConnectTimeout().toMillis()));
  
          if (LettuceStrings.isEmpty(redisURI.getSocket())) {
              redisBootstrap.option(ChannelOption.SO_KEEPALIVE, socketOptions.isKeepAlive());
              redisBootstrap.option(ChannelOption.TCP_NODELAY, socketOptions.isTcpNoDelay());
          }
  
          connectionBuilder.timeout(redisURI.getTimeout());
          connectionBuilder.password(redisURI.getPassword());
  
          connectionBuilder.bootstrap(redisBootstrap);
          connectionBuilder.channelGroup(channels).connectionEvents(connectionEvents).timer(timer);
          connectionBuilder.socketAddressSupplier(socketAddressSupplier);
      }