Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Catalog Tables

pg_tide stores all state in relational tables within the tide schema. This page documents the underlying tables that power the SQL API.


tide.tide_outbox_config

One row per named outbox.

ColumnTypeDescription
outbox_nameTEXT (PK)Unique outbox identifier
retention_hoursINTHours to retain consumed messages
inline_thresholdINTBackpressure threshold
enabledBOOLEANWhether publishing is allowed
created_atTIMESTAMPTZCreation timestamp

tide.tide_outbox_messages

Shared message store for all outboxes.

ColumnTypeDescription
idBIGINT (PK)Auto-incrementing message ID
outbox_nameTEXT (FK)Which outbox this belongs to
payloadJSONBMessage body
headersJSONBMessage metadata
created_atTIMESTAMPTZPublication time
consumed_atTIMESTAMPTZWhen relay delivered it (NULL = pending)
consumer_groupTEXTWhich group consumed it

Indexes:

  • idx_tide_outbox_messages_pending — partial index on (outbox_name, id) WHERE consumed_at IS NULL

tide.tide_consumer_groups

Named consumer groups with offset reset policy.

ColumnTypeDescription
group_nameTEXT (PK)Unique group name
outbox_nameTEXT (FK)Outbox being consumed
auto_offset_resetTEXTearliest, latest, or none
created_atTIMESTAMPTZCreation timestamp

tide.tide_consumer_offsets

Per-consumer committed offsets and heartbeats.

ColumnTypeDescription
group_nameTEXT (PK, FK)Consumer group
consumer_idTEXT (PK)Consumer instance identifier
committed_offsetBIGINTLast processed message ID
last_heartbeatTIMESTAMPTZLast liveness signal

tide.tide_consumer_leases

Visibility leases for in-flight message batches.

ColumnTypeDescription
group_nameTEXT (PK, FK)Consumer group
consumer_idTEXT (PK, FK)Consumer instance
lease_startBIGINTFirst message ID in the leased batch
lease_endBIGINTLast message ID in the leased batch
expires_atTIMESTAMPTZWhen the lease expires

tide.tide_inbox_config

Named inbox configurations.

ColumnTypeDescription
inbox_nameTEXT (PK)Unique inbox identifier
inbox_schemaTEXTSchema containing the inbox table
max_retriesINTAttempts before DLQ
processed_retention_hoursINTHours to keep processed messages
dlq_retention_hoursINTHours to keep DLQ messages
created_atTIMESTAMPTZCreation timestamp

tide.relay_outbox_config

Forward relay pipeline definitions.

ColumnTypeDescription
nameTEXT (PK)Unique pipeline name
enabledBOOLEANWhether the pipeline is active
configJSONBFull pipeline config (outbox, sink, params)

Triggers: relay_outbox_config_notify — fires pg_notify('tide_relay_config', ...) on changes.


tide.relay_inbox_config

Reverse relay pipeline definitions.

ColumnTypeDescription
nameTEXT (PK)Unique pipeline name
enabledBOOLEANWhether the pipeline is active
configJSONBFull pipeline config (inbox, source, params)

Triggers: relay_inbox_config_notify — fires pg_notify('tide_relay_config', ...) on changes.


tide.relay_consumer_offsets

Durable per-pipeline offset tracking for the relay binary.

ColumnTypeDescription
relay_group_idTEXT (PK)Relay deployment group
pipeline_idTEXT (PK)Pipeline name
last_offsetTEXTLast processed offset
updated_atTIMESTAMPTZLast update timestamp