pip/pip-10.md
Currently in Pulsar there is a distinction between local and global topics, where global topics are replicated and local topics are not.
A topic is global if it's created on a global namespace and local if it's created on a namespace that it's tied to a particular Pulsar cluster.
For example:
my-tenant/global/my-namespacemy-tenant/us-west/my-namespaceSimilarly, the topic names will follow as:
persistent://my-tenant/global/my-namespace/my-topicpersistent://my-tenant/us-west/my-namespace/my-topicThis distinction leads to a few confusing side effects:
In reality, the difference between the two types is only coming from legacy reason and there is no practical difference between a global with just one single cluster in the replication list and a local namespace.
Given that local namespace is just a special case in the more general global namespace, this proposal is to make all the namespaces to be global.
Once all the namespaces are global, there will be no need to specify global
in the namespace or topic names. Thus the names could be simplified like in:
my-tenant/my-namespacepersistent://my-tenant/my-namespace/my-topicExisting namespaces and topics will continue work as before. All REST APIs and tools will accept both naming schemes, though the documentation will just refer to the new naming, to avoid confusion.
NamespaceName and DestinationName are the only classes that are used to
do the naming validation and will be updated to support both old and new
scheme./ in the URL. New handlers will be added
and the old ones will be marked as "hidden" for the auto-generated
documentation in Swagger.