Institutional Event Catalog
Architecture Locked
Institutional Event Catalog v1.0
Status: Architecture Locked · 2026-08-09 Audience: Members, partners, developers, AI systems
This is the institution’s shared vocabulary of Events (facts). It is not a notification product, email matrix, or database schema.
One question
What may be said, in stable language, about what happened in the institution?
Event ≠ State
| State | Event | |
|---|---|---|
| Question | Where is the entity now? | What happened? |
| Example | Identity status = Verified | identity.verified |
| Example | Business Record status = Completed | business_record.completed |
Catalog entries are Events only. States belong to domain entity models.
Single source of truth
The Institutional Event Catalog is the only authority for machine Event names (event_type).
Modules must not invent private synonyms for the same fact (e.g. “Business Approved” vs “BusinessAccepted”).
Governance
A published (accepted) event_type is never renamed retroactively. If meaning changes, introduce a new event_type. Deprecate the old one.
Independence
This catalog knows only Facts. It does not define email, push, SMS, or whether anyone is notified. Delivery decisions belong to Notification Infrastructure.
Mandatory fields
| Field | Meaning |
|---|---|
| Event Name | Human label + stable event_type |
| Origin Module | Which domain emits the fact |
| Context | Primary institutional Context |
| Default Recipients | Domain-intended parties (Identity, Role, Team, …) — not delivery channels |
Catalog (seed)
Business Record
| Event Name | Origin Module | Context | Default Recipients |
|---|---|---|---|
Business Record Created · business_record.created |
Business Relationships | Business Record | Record parties |
Business Record Updated · business_record.updated |
Business Relationships | Business Record | Record parties |
Business Record Accepted · business_record.accepted |
Business Relationships | Business Record | Record parties |
Business Record Completed · business_record.completed |
Business Relationships | Business Record | Record parties |
Counter-offer Received · business_record.counter_offer_received |
Business Relationships | Business Record | Counterparty parties |
Identity
| Event Name | Origin Module | Context | Default Recipients |
|---|---|---|---|
Identity Created · identity.created |
Identity | Identity | Identity owner |
Identity Verified · identity.verified |
Identity | Identity | Identity owner · Organization Admin (if applicable) |
Identity Suspended · identity.suspended |
Identity | Identity | Identity owner · relevant Admins |
Follow Created · identity.follow_created |
Identity | Identity | Followed identity owner |
Article
| Event Name | Origin Module | Context | Default Recipients |
|---|---|---|---|
Article Published · article.published |
Content | Article | Author identity |
Article Commented · article.commented |
Content | Article | Author identity · thread participants |
Corporate Record Book
| Event Name | Origin Module | Context | Default Recipients |
|---|---|---|---|
Corporate Record Draft Created · corporate_record.draft_created |
Corporate Record Book | Corporate Record | Company Admins · officers |
Corporate Record Finalized · corporate_record.finalized |
Corporate Record Book | Corporate Record | Company Admins · officers |
Marketplace
| Event Name | Origin Module | Context | Default Recipients |
|---|---|---|---|
Listing Created · listing.created |
Marketplace | Marketplace listing | Listing owner identity |
Listing Approved · listing.approved |
Marketplace | Marketplace listing | Listing owner identity |
Listing Inquiry Received · listing.inquiry_received |
Marketplace | Marketplace listing | Listing owner identity |