Skip to content

Core redesign + full backend build-out: facade for ~14 vectorDBs, provider registry, setup assist #11

Description

@thorwhalen

Goal

Build vd into a complete vectorDB facade per the new report misc/docs/11 -- VectorDB Selection & Setup Guide. Three deliverables:

  1. Choose — provider registry + decision framework so agents/devs can pick a backend.
  2. Set upcheck_requirements(backend) per deployment archetype, with "next step" guidance.
  3. Facade — implement every vectorDB adapter, vendor-lock-in-free, with per-backend escape hatches.

Core redesign (decided with maintainer)

Redesign the core; refactor ef to match (ef is the only consumer, no end users yet).

  • Decouple embedding from the facade core. Embedding becomes an optional convenience layer (connect(backend, embedder=None)); the core deals in vectors. Drop the hard imbed dependency. (Matches the existing .claude/CLAUDE.md §6.)
  • Client becomes a Mapping[str, Collection]; Collection stays MutableMapping[str, Document] + search(); batch ops demoted to SupportsBatch.
  • Shared AbstractClient / AbstractCollection bases to kill the memory/chroma duplication; backend adapters become thin.
  • Per-backend filter translators (_compile_filter) over the canonical Mongo-style AST; UnsupportedFilterError wired to each backend's documented operator subset.
  • Escape hatches (.client, .native) mandatory on every adapter.

Backend scope

Deep + tested here (pip-installable / embedded): chroma, faiss, sqlite-vec, duckdb-vss, lancedb, qdrant (local), memory.
Adapters written correct-by-construction (need a server/cloud account to run): pgvector, pinecone, weaviate, milvus, redis, elasticsearch, mongodb-atlas, turbopuffer.

Tracking

Dev journal — appended as work proceeds.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions