@Override
        public boolean hasNext() {
            if (next != null) {
                return true;
            }
            BrokerHeartbeatState result;
            do {
                if (!iterator.hasNext()) {
                    return false;
                }
                result = iterator.next();
            } while (result.shuttingDown());
            Optional<String> rack = idToRack.apply(result.id());
            next = new UsableBroker(result.id(), rack, result.fenced());
            return true;
        }
Check if the oldest broker to have heartbeated has already violated the
sessionTimeoutNs timeout and needs to be fenced.

@return      An Optional broker node id.
metadata/src/main/java/org/apache/kafka/controller/BrokerHeartbeatManager.java