docs: private CompletableFuture<Void> bootstrapServer() {
      ServerBootstrap b = new ServerBootstrap();
      b.option(ChannelOption.SO_REUSEADDR, true);
      b.option(ChannelOption.SO_BACKLOG, 128);
      b.childOption(ChannelOption.WRITE_BUFFER_WATER_MARK,
          new WriteBufferWaterMark(8 * 1024, 32 * 1024));
      b.childOption(ChannelOption.SO_RCVBUF, 1024 * 1024);
      b.childOption(ChannelOption.SO_SNDBUF, 1024 * 1024);
      b.childOption(ChannelOption.SO_KEEPALIVE, true);
      b.childOption(ChannelOption.TCP_NODELAY, true);
      b.childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT);
      b.group(serverGroup, clientGroup);
      b.channel(serverChannelClass);
      if (enableNettyTls) {
        try {
          b.childHandler(new SslServerChannelInitializer());
        } catch (SSLException e) {
          return Futures.exceptionalFuture(e);
        }
      } else {
        b.childHandler(new BasicServerChannelInitializer());
      }
      return bind(b);
    }