Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Just prepend namespace to topic names, even at storage layer, instead of creating a hierarchy of directories to represent namespaces. 
    1. Will not enable encrypting namespaces with different keys.
    2. 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.
  2. Modify request/ response formats to take namespace specifically.
    1. Solves the issue of delimiting string required in proposed approach and the issue with existing regex consumers.
    2. 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.
  3. Manage namespaces separately. 
    1. This will still have the issue of topic name collisions even if they belong to separate namespaces.
  4. Add namespace to session object.
    1. Will avoid each request and response to have namespace with topic name, however this probably is violating separation of concerns.
  5. To have delimiter char configurable.
    1. Will add yet another config, without any clear gain.