Hi Moses, Specifically, on blocking in the constructor to fetch metadata, while I like the idea of specifying the topics in the constructor and fetching the metadata then, I think it leads to a few scenarios that could be unexpected. First is if you try to use a topic that wasn't included in the constructor which puts us back in the same position we're currently in. Second, metadata is only cached for a configured period of time, if a topic is published to infrequently then the metadata may fall out of cache leaving us in the current situation again. And lastly, you call this out as a con in the KIP, but a blocking constructor is very unexpected which could result in issues like a service failing to start up if metadata is missing.
For those reasons, I don't think it really addresses the core of either issue very well so it probably isn't a great option. Jesse