Use an indexed tenant_id payload field and scope every operation
The simplest pattern is one shared collection with a tenant_id payload field on every point, plus a payload index on tenant_id. Every tenant-scoped search, scroll, read, update, and delete should include the tenant filter. The index improves efficient tenant-aware filtering, but it is not an authorization boundary. I would derive tenant_id from authenticated server-side context rather than trusting a client-supplied value. Separate collections or deployments are alternatives when stronger administrative or resource isolation is required.
tenant_id should exist on every tenant-owned point and use a consistent type and format.
Trade-off: one collection is operationally efficient at large tenant counts; separate collections provide a stronger isolation boundary but increase lifecycle and index overhead.
Having an indexed tenant_id field does not make the data secure by itself; the application must actually apply the filter.
Centralizing Qdrant access in a repository or service layer makes accidental unscoped queries much harder to introduce.
You store documents for Acme and Beta in one collection. How would you return only Acme documents from a vector search?
tenant_id exists in payload but tenant-filtered searches slow down as data grows. What Qdrant feature would you add first?
A new search endpoint forgets the tenant filter. How would you structure the access layer to make that mistake difficult?
One tenant has 50,000 vectors and another has 50 million. What shared-collection concerns would you monitor?
You have 20,000 tenants with highly uneven data sizes. How would you use tenant_id indexing without creating thousands of collections?
A customer wants an audit proving vector searches are tenant-scoped. What controls would you add around Qdrant access?
Your SaaS has millions of tenants but a small number of huge customers. How would you combine shared and dedicated isolation tiers?
How would you design defense in depth so an API coding mistake cannot easily produce a cross-tenant search?