@Override
    public boolean equals(Object o) {
        if (o == null || !o.getClass().equals(this.getClass())) return false;
        MetadataImage other = (MetadataImage) o;
        return provenance.equals(other.provenance) &&
            features.equals(other.features) &&
            cluster.equals(other.cluster) &&
            topics.equals(other.topics) &&
            configs.equals(other.configs) &&
            clientQuotas.equals(other.clientQuotas) &&
            producerIds.equals(other.producerIds) &&
            acls.equals(other.acls) &&
            scram.equals(other.scram) &&
            delegationTokens.equals(other.delegationTokens) &&
            streamMetadata.equals(other.streamMetadata) &&
            objectsMetadata.equals(other.objectsMetadata) &&
            kv.equals(other.kv);
    }
The broker metadata image.

This class is thread-safe.
metadata/src/main/java/org/apache/kafka/image/MetadataImage.java