Event
Event Schema
Description: A single emitted event.
Producers write rows here within the same DB transaction as the
state-change they're describing. The dispatcher polls this table, resolves
matching subscriptions, and creates ``EventNotification`` rows.
The denormalized parent ID columns (``observatory_id``, ``telescope_id``,
``device_id``, ``observation_id``, ``operational_constraint_id``,
``observing_account_id``) let subscriptions filter at any level of the
resource hierarchy without joins.
Properties
| Name | Type | Description |
|---|---|---|
| id | Integer |
No description |
| event_kind | String(128) |
Stable dotted-name identifier; matched against EventKind enum in the SDK. |
| resource_kind | Enum(observation, telescope, observatory, site, device, operational_constraint, operational_constraint_action, observing_account) |
No description |
| resource_id | Integer |
Soft FK; the table is implied by resource_kind. |
| payload | JSONB |
No description |
| message | String(Unbounded) (Optional) |
No description |
| dedup_key | String(256) (Optional) |
No description |
| owner_entity_id | Integer (Optional) |
No description |
| observatory_id | Integer (Optional) |
No description |
| telescope_id | Integer (Optional) |
No description |
| device_id | Integer (Optional) |
No description |
| observation_id | Integer (Optional) |
No description |
| operational_constraint_id | Integer (Optional) |
No description |
| observing_account_id | Integer (Optional) |
No description |
| created_on | DateTime |
No description |
| dispatched_on | DateTime (Optional) |
When the dispatcher claimed this row to fan out. Used together with SELECT FOR UPDATE SKIP LOCKED for multi-instance safety. |