Postgres + pgvector, not a vector database
Keep embeddings in the primary database as a vector(1024) column with an HNSW cosine index.
Why
Retrieval is always tenant-scoped and almost always joined against relational data. Living in the same database means one transaction, one backup, one permission model, and no drift between the graph and the rows it describes.
Trade-off
Gives up the raw recall ceiling of a dedicated engine. At this data volume the join locality is worth far more, and the migration path stays open.