Skip to main content

What is a Namespace?

A Namespace is the fundamental unit of isolation within Temporal, which is backed by a multi-tenant service.

You can use Namespaces to match the development lifecycle; for example, having separate dev and prod Namespaces. Or you could use them to ensure workflows between different teams never communicate; such as ensuring that the teamA Namespace never impacts the teamB Namespace.

  • By default, Temporal server has one "default" and one internal Namespace. All APIs and tools, such as the UI and CLI, default to the "default" Namespace if it is not specified. So, if you are not planning to use multiple Namespaces, we recommend using the default one.
  • Membership: Task Queue names and Workflow Ids must all correspond to a specific Namespace. For example, when a Workflow is started, it starts within a specific Namespace.
  • Uniqueness: Temporal guarantees a unique Workflow Id within a Namespace. Temporal supports running Workflow Executions that use the same Workflow Id if they are in different Namespaces.
  • Namespace Configuration: Various configuration options like the retention period or Archival destination are configured per Namespace through a special CRUD API or through tctl.