Temporal Namespace

A Namespace is a unit of isolation within the Temporal Platform.

A single Namespace is still multi-tenant.

Namespaces are created on the Temporal Service, and provide a range of controls to achieve isolation on Workflow Executions.

  • Namespaces are a mechanism for resource isolation. Heavy traffic from one Namespace will not impact other Namespaces running on the same Temporal Service. For example, you can use Namespaces to match the development lifecycle by having separate dev and prod Namespaces.
  • If no other Namespace is specified, the Temporal Service uses the Namespace “default” for all Temporal SDKs and the Temporal CLI. See the Registration section for details.
  • Namespaces created on self-hosted Temporal Service are case-sensitive. For example, foo and Foo are two different Namespaces. On Temporal Cloud, Namespaces are case-insensitive, and we recommend using lowercase for Namespace names to avoid potential issues.
  • Membership: Task Queue names and Workflow Ids must all correspond to a specific Namespace. For example, when a Workflow Execution is spawned, it does so within a specific Namespace.
  • Uniqueness: Temporal guarantees a unique Workflow Id within a Namespace. Workflow Executions may have the same Workflow Id if they are in different Namespaces.
  • Namespace Configuration: Various configuration options like the Retention Period and the Archival destination are configured per Namespace through a special CRUD API or through the Temporal CLI.

References