Skip to content

Namespace-per-tenant

A multi-tenancy pattern where each tenant occupies a separate namespace inside a single shared index, offering lightweight logical isolation at scale.

Namespace-per-tenant is a multi-tenancy pattern in which each customer is assigned a separate namespace inside a single shared vector index. Every tenant’s vectors live in their own namespace, and queries are scoped to one namespace so results never cross tenant boundaries, while the heavy index infrastructure is shared across all of them.

This pattern is popular because it scales efficiently to large numbers of tenants. Creating a namespace is cheap, so onboarding a new tenant is lightweight, and pooling infrastructure keeps costs low even with thousands of tenants. It provides clean logical isolation suitable for most SaaS applications, where tenants simply need their data kept private and separate.

The trade-off is that namespaces share underlying resources, so isolation is logical rather than physical, leaving some potential for cross-tenant performance interference and weaker guarantees than dedicated infrastructure. For tenants with strict security or performance requirements, heavier patterns like collection-per-tenant or a dedicated shard or database may be warranted, but namespace-per-tenant is the efficient default for serving many tenants at scale.