...
- Just prepend namespace to topic names, even at storage layer, instead of creating a hierarchy of directories to represent namespaces.
- Will not enable encrypting namespaces with different keys.
- Namespace level configs or acls won't be possible without creating yet another znode in Kafka's chroot in ZK. I do not think having /kafka-namespaces/<namespace> will help in alleviating the confusion caused by passing namespace and topic name together in APIs, as we will still have to represent multi-tiered namespaces under /kafka-namespaces as dirs.
- Modify request/ response formats to take namespace specifically.
- Solves the issue of delimiting string required in proposed approach and the issue with existing regex consumers.
- This definitely is the cleanest approach. However, will require lots of API and protocol changes. This is listed in rejected alternatives, but we should totally consider this as an option.
- Manage namespaces separately.
- This will still have the issue of topic name collisions even if they belong to separate namespaces.
- Add namespace to session object.
- Will avoid each request and response to have namespace with topic name, however this probably is violating separation of concerns.
- To have delimiter char configurable.
- Will add yet another config, without any clear gain.