Columns
| Column | Type | Size | Nulls | Auto | Default | Children | Parents | Comments | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| event_id | uuid | 2147483647 | null |
|
|
||||||||||||
| company_id | uuid | 2147483647 | null |
|
|
||||||||||||
| event_type | varchar | 100 | null |
|
|
||||||||||||
| payload_version | varchar | 20 | null |
|
|
||||||||||||
| aggregate_type | varchar | 60 | null |
|
|
||||||||||||
| aggregate_id | uuid | 2147483647 | null |
|
|
||||||||||||
| actor_type | varchar | 30 | null |
|
|
||||||||||||
| actor_id | uuid | 2147483647 | √ | null |
|
|
|||||||||||
| request_id | varchar | 128 | null |
|
|
||||||||||||
| trace_id | varchar | 64 | √ | null |
|
|
|||||||||||
| payload_json | text | 2147483647 | null |
|
|
||||||||||||
| status | varchar | 30 | null |
|
|
||||||||||||
| attempt_count | int4 | 10 | 0 |
|
|
||||||||||||
| next_attempt_at | timestamptz | 35,6 | √ | null |
|
|
|||||||||||
| lease_owner | varchar | 128 | √ | null |
|
|
|||||||||||
| lease_expires_at | timestamptz | 35,6 | √ | null |
|
|
|||||||||||
| last_error_code | varchar | 80 | √ | null |
|
|
|||||||||||
| completed_at | timestamptz | 35,6 | √ | null |
|
|
|||||||||||
| occurred_at | timestamptz | 35,6 | null |
|
|
||||||||||||
| created_at | timestamptz | 35,6 | null |
|
|
||||||||||||
| updated_at | timestamptz | 35,6 | null |
|
|
||||||||||||
| version | int8 | 19 | 0 |
|
|
Indexes
| Constraint Name | Type | Sort | Column(s) |
|---|---|---|---|
| pk_event_publication | Primary key | Asc | event_id |
| idx_event_publication_claim | Performance | Asc/Asc/Asc/Asc | status + next_attempt_at + lease_expires_at + occurred_at |
| idx_event_publication_company_time | Performance | Asc/Asc | company_id + occurred_at |
| idx_event_publication_request | Performance | Asc/Asc | company_id + request_id |
| idx_event_publication_review | Performance | Asc/Asc | status + updated_at |
| uq_event_publication_id_company | Must be unique | Asc/Asc | event_id + company_id |
Check Constraints
| Constraint Name | Constraint |
|---|---|
| ck_event_publication_status | (((status)::text = ANY ((ARRAY['PENDING'::character varying, 'PROCESSING'::character varying, 'RETRY_WAIT'::character varying, 'COMPLETED'::character varying, 'REVIEW_REQUIRED'::character varying])::text[]))) |
| ck_event_publication_next_attempt | (((((status)::text = ANY ((ARRAY['PENDING'::character varying, 'RETRY_WAIT'::character varying])::text[])) AND (next_attempt_at IS NOT NULL)) OR (((status)::text <> ALL ((ARRAY['PENDING'::character varying, 'RETRY_WAIT'::character varying])::text[])) AND (next_attempt_at IS NULL)))) |
| ck_event_publication_attempt_count | ((attempt_count >= 0)) |
| ck_event_publication_type_not_blank | ((char_length(TRIM(BOTH FROM event_type)) > 0)) |
| ck_event_publication_lease | (((((status)::text = 'PROCESSING'::text) AND (lease_owner IS NOT NULL) AND (char_length(TRIM(BOTH FROM lease_owner)) > 0) AND (lease_expires_at IS NOT NULL)) OR (((status)::text <> 'PROCESSING'::text) AND (lease_owner IS NULL) AND (lease_expires_at IS NULL)))) |
| ck_event_publication_payload_not_blank | ((char_length(TRIM(BOTH FROM payload_json)) > 0)) |
| ck_event_publication_payload_version_not_blank | ((char_length(TRIM(BOTH FROM payload_version)) > 0)) |
| ck_event_publication_error | (((((status)::text = ANY ((ARRAY['RETRY_WAIT'::character varying, 'REVIEW_REQUIRED'::character varying])::text[])) AND (last_error_code IS NOT NULL) AND (char_length(TRIM(BOTH FROM last_error_code)) > 0)) OR (((status)::text <> ALL ((ARRAY['RETRY_WAIT'::character varying, 'REVIEW_REQUIRED'::character varying])::text[])) AND (last_error_code IS NULL)))) |
| ck_event_publication_aggregate_type_not_blank | ((char_length(TRIM(BOTH FROM aggregate_type)) > 0)) |
| ck_event_publication_timestamps | (((created_at >= occurred_at) AND (updated_at >= created_at))) |
| ck_event_publication_completed | (((((status)::text = 'COMPLETED'::text) AND (completed_at IS NOT NULL)) OR (((status)::text <> 'COMPLETED'::text) AND (completed_at IS NULL)))) |
| ck_event_publication_actor_type | (((actor_type)::text = ANY ((ARRAY['HR_USER'::character varying, 'WORKER_LINK'::character varying, 'AI_AGENT'::character varying, 'SYSTEM_RULE'::character varying])::text[]))) |
| ck_event_publication_version | ((version >= 0)) |
| ck_event_publication_request_not_blank | ((char_length(TRIM(BOTH FROM request_id)) > 0)) |

