- A separate CDC service polls the configured table at a fixed interval
- It queries rows where
poll_column > last_bookmark(e.g.,updated_at > '2026-03-01T10:00:00') - If new rows are found, they are batched into a single function call
- The bookmark advances to the highest value in the batch
- On first activation, the bookmark is set to
MAX(poll_column)— no backfill of existing data
| Property | Description |
|---|---|
name | Unique trigger name (per user) |
database_connection_id | Which database connection to poll |
schema_name | Database schema (default: public) |
table_name | Table to watch |
operations | ["INSERT"], ["UPDATE"], or both |
function_namespace / function_name | Function to execute when changes are detected |
poll_column | Monotonically increasing column used as bookmark (e.g., updated_at, id) |
poll_interval_seconds | How often to poll (1–3600, default: 10) |
batch_size | Max rows per poll (1–10000, default: 100) |
is_active | Enable/disable without deleting |
last_poll_value | Current bookmark (managed automatically) |
error_message | Last error, if any (visible in UI) |
poll_column must be a column whose value only increases — timestamps, auto-increment IDs, or sequences. The column type is detected automatically and comparisons are cast to the correct type.
Function input payload:
When changes are detected, the target function receives all new rows in a single call:
error_message and retries with exponential backoff (up to 60 seconds). The trigger continues retrying until deactivated or the issue is resolved.
Limitations:
- Cannot detect
DELETEoperations (poll-based limitation) - Changes are detected with a delay equal to the poll interval
- The
poll_columnmust never decrease — resetting it will cause missed or duplicate rows