Ingestion tables¶
From the graph data model: sources, events, event memberships, and summaries. A stub until ingestion's owner writes it.
| Status | Stub. Owned by the B1 producer, assigned at milestone 1 (D15) |
| Created | 2026-09-03 |
| Updated | 2026-09-08 |
| Context | domain.md: concepts Source, Event, SourceSummary / EventSummary; invariants 1, 8, 10. architecture.md: Pipeline, Projections, Changed-source reconciliation. interfaces.md: B1 |
What this document must define¶
- The tables for the four concepts above, column by column, with the source version chain
(
status,superseded_by_id,superseded_reason,superseded_at), the eventrevision, and the membership rows kept superseded for lineage. - The
content_hashdedup constraint (PRD I1) and the(external_system, external_id)identity that recomposition keys on. - The renderings and chunks projection keyed by
parser_version, and where source bytes live once #7, copy the bytes or reference keshi, is decided. - The rows that the graph tables reference by id without a foreign key:
events.idand the stage run id onpartial_entities(entities and links).
What already binds it¶
The conventions in the summary doc apply unchanged: plural snake_case names, _id and
_at suffixes, the supersession pattern with the same four columns, caller-derived ids,
composite (organization_id, id) foreign keys, text plus check constraint for closed sets
(conventions.md, rule 6), and a row in the invariant-enforcement map
for each invariant a table here carries.