ADR-0005: Qdrant as the primary vector store¶
Decision
This page records a decision and its status. A Proposed decision is not binding; an Accepted decision is binding on the Factory until amended or superseded.
- Status: Accepted
- Date: 2026-01-01
- Deciders: Data Architect, Knowledge Platform Lead
- Tags: knowledge, vector, persistence
Reviewed 2026-10-09 — amended by ADR-0013 (Accepted 2026-10-09)
- Amended 2026-10-09. The product owner accepted ADR-0013, which turns "Qdrant primary" into a retrieval contract with evidenced backend profiles. This ADR stays in force except where ADR-0013 changes it; read the two together.
- Verified: the agent host's
SetupVectorStoreIntegrationsupports only the in-memory connector; Qdrant, PgVector, SQL Server and Azure AI Search throwNotSupportedException. Retrieval filters tenant/tags after top-k selection, the Agent Framework search adapter passesoptions: null, and the record's metadata field has no vector-store data attribute. Dimensions are fixed at 1536. - Consequence: no page may describe Qdrant as a working, tenant-isolated path today.
- Provenance:
Dateis the 2026-06-17 bulk-commit value.
Context¶
The Knowledge Platform performs semantic search over blueprints, docs, patterns, and code to assemble context packages for agents. It needs a performant, self-hostable vector database with strong filtering (for tenant and classification scoping) and predictable cost at scale.
Decision¶
Use Qdrant as the primary vector store for embeddings and semantic memory. Azure AI Search is supported as an alternative where a managed service is preferred. Vector data is rebuildable by re-embedding source artifacts.
Consequences¶
Positive¶
- High-performance similarity search with metadata filtering for
tenantId/classification. - Self-hostable and cost-predictable; snapshot backups.
Negative / trade-offs¶
- Operational ownership of Qdrant (deployment, scaling, backups).
Neutral¶
- Vector store sits behind the Knowledge Platform's services; consumers never query it directly.
Alternatives considered¶
| Alternative | Why not chosen |
|---|---|
| Azure AI Search (only) | Retained as an alternative; primary chosen for cost/control and filtering. |
| pgvector | Adequate for small scale; less specialized for high-volume ANN workloads. |