constructor({
    connectionPoolBuilder,
    logger,
    retry,
    allowAutoTopicCreation,
    authenticationTimeout,
    metadataMaxAge,
  }) {
    this.rootLogger = logger
    this.connectionPoolBuilder = connectionPoolBuilder
    this.metadataMaxAge = metadataMaxAge || 0
    this.logger = logger.namespace('BrokerPool')
    this.retrier = createRetry(assign({}, retry))

    this.createBroker = options =>
      new Broker({
        allowAutoTopicCreation,
        authenticationTimeout,
        ...options,
      })

    this.brokers = {}
    /** @type {Broker | undefined} */
    this.seedBroker = undefined
    /** @type {import("../../types").BrokerMetadata | null} */
    this.metadata = null
    this.metadataExpireAt = null
    this.versions = null
  }
@param {object} options
@param {import("./connectionPoolBuilder").ConnectionPoolBuilder} options.connectionPoolBuilder
@param {import("../../types").Logger} options.logger
@param {import("../../types").RetryOptions} [options.retry]
@param {boolean} [options.allowAutoTopicCreation]
@param {number} [options.authenticationTimeout]
@param {number} [options.metadataMaxAge]