What are best practices for organizing namespaces?

For a larger company, there would be many namespaces, one would think. My first instinct is to have one namespace per pairing of functional area and environment type. Examples of that could be accountCreation_prod and accountCreation_dev.

However, I am still wondering about the relationship between global namespaces and non-global namespaces. Should there be a global namespace for each non-global namespace which can operate in multiple clusters? For example, “accountCreation_prod” might have a corresponding global namespace “global_accountCreation_prod”. Going further, we could say (for illustration!) that “accountCreation_dev” is only a development namespace and so it would not be a member of any global namespace (or just “default”?).

Let me know what you think.

relationship between global namespaces and non-global namespaces

Take a look at this forum post that has information about global namespaces, as well as multi-cluster replication docs.

Should there be a global namespace for each non-global namespace which can operate in multiple clusters?

If you have multiple clusters I believe yes you would need to have one namespace promoted to global on active cluster. You can’t have a workflow execution active on multiple clusters simultaneously, but you would need to have workers running also on all the non-global namespaces on all “standby” clusters in case of failover.