Skip to content

app.domain_events

TableRow level security on

Append-only domain event table that webhook delivery reads (Section 10.1). Rows are written only by database triggers, so every state change is emitted exactly once.

Primary key: id

Columns of app.domain_events
ColumnTypeNullableDescription
iduuidNoPrimary key, UUID v7.
org_iduuidNoOwning org. A row never moves to another org.References app.organizations.id
event_typetextNoEvent code from the catalog, for example record.state_changed.References private.domain_event_types.code
subject_tabletextNoTable of the row the event describes.
subject_iduuidNoId of the row the event describes.
project_iduuidYesProject of the subject, when it belongs to one, for per-project subscriptions.References app.projects.id
datajsonbNoOutbound webhook payload: the subject fields the event names. Never carries restricted columns.
occurred_attimestamp with time zoneNoWhen the event happened.
created_attimestamp with time zoneNoWhen the row was inserted. Set by the database.
created_byuuidYesPerson who inserted the row, or null for a platform process. Set by the database.References app.people.id
updated_attimestamp with time zoneNoWhen the row last changed. Set by the database.
updated_byuuidYesPerson who last changed the row, or null for a platform process. Set by the database.References app.people.id
deleted_attimestamp with time zoneYesSoft delete time. A row with deleted_at set is ignored by every access helper.