...
Status
Current state: "Under Construction Discussion"
Discussion thread: here [Change the link from the KIP proposal email archive to your own email thread]
JIRA: here [Change the link from KAFKA-1 to your own ticket]2630
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
...
After considering a few approaches, listed in Rejected Alternatives (not really rejected, up for discussion) section, below is what we think is the least obtrusive approach to support namespaces in Kafka. We suggest to represent namespaces at storage layer, i.e., storage layout of Zookeeper entities and logs on disk. Internal and public APIs can pass around namespaces, as part of, prepended to, topic names. However, we need to separate namespace and topic while interacting with storage layers. This can be done by using a delimiter that is not allowed in Kafka topics. Currently, Kafka allows a topic name to contain characters only in [a-zA-Z0-9\\._\\-]. That gives us a few options to decide on the delimiting char. We suggest to have ":" as the delimiting char, but it can be any of the following.
...
Namespace can have any char in [a-zA-Z0-9\\.\\-]. The ".:" in namespaces will be used to separate tiers. For instance, a namespace "org.:apache.:kafka" will translate to "org/apache/kafka" in storage layouts.
...
Creating namespace will be required before it can be used. There is no plan of supporting auto namespace creation. If a multi-tiered namespace is created, it will create all the tiers specified in the namespace. For instance, the command below will create three namespaces, i.e., org, org.:apache and org.:apache.:kafka.
Code Block |
---|
kafka-topics.sh --zookeeper <ZK_CONNECTION_STRING> --create --namespace org.:apache.:kafka |
List
kafka-topics will be modified to support listing namespaces, as shown below.
...