Where should the zk code for the dynamic topic config go? I am not sure I understand the overall lay of the land well enough to know if I am doing the right thing.
For instance, what the is KafkaZookeeper? What is its domain of responsibility? Should all zk code go there? Lots of other zk code seems elsewhere, KafkaZookeeper just seems to be the znode for broker liveness (perhaps it should be renamed?). Why does some zk stuff go in KafkaZookeeper and other stuff elsewhere? Actually in practice lots of it seems to be stuck in ZkUtils as static methods, is there a reason for this? Maybe this stuff needs a maintainer? Or does it fall under "replication"? What I am thinking of doing is making a new class TopicConfigWatcher which has a readAllLogConfigs() method and a watcher on the config change path. This class would update a map of configs which would be shared with LogManager to handle "alter topic". "create topic" can just do the read from zk in response to the controller. Does this sound reasonable? -Jay