Embedding Pipeline Service · View 12 of 22 · Data
The key that matters
- A vector's primary key is (chunk_hash, contract_id). A model change therefore produces new rows rather than updating existing ones, and the schema makes an in-place upgrade unexpressible.
- chunk_hash is derived from normalised chunk text, so chunk identity survives an edit elsewhere in the document — this is what makes the diff cheap.
- index_alias carries previous_index_id, which is what makes rollback a single write rather than a rebuild.
Modelling choices
- A chunk points at the contract that produced it, because the chunker version is a contract element — a chunker change is as much a rebuild as a model change.
- normalised_text carries expires_at, so the 30-day retention is a property of the data rather than of a cleanup job.
- quarantine and suppression are separate optional entities rather than status columns, so a typed failure and a revocation each carry their own evidence.
Not modelled here
- Permissions. The platform holds acl_ref on a document and resolves it against the authority at query time; mirroring the ACL model would be a second source of truth.
- Lexical index state, which is derived from the same chunk rows and adds nothing to this view.