Skip to content

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 event revision, and the membership rows kept superseded for lineage.
  • The content_hash dedup 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.id and the stage run id on partial_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.