Skip to main content
Database triggers watch external database tables for changes and automatically execute functions when new or updated rows are detected. This is poll-based Change Data Capture — no setup required on the source database. How it works:
  1. A separate CDC service polls the configured table at a fixed interval
  2. It queries rows where poll_column > last_bookmark (e.g., updated_at > '2026-03-01T10:00:00')
  3. If new rows are found, they are batched into a single function call
  4. The bookmark advances to the highest value in the batch
  5. On first activation, the bookmark is set to MAX(poll_column) — no backfill of existing data
Key properties: The 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:
If a poll returns zero rows, no function call is made. Error handling: On failure, the trigger logs the error to 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 DELETE operations (poll-based limitation)
  • Changes are detected with a delay equal to the poll interval
  • The poll_column must never decrease — resetting it will cause missed or duplicate rows
Endpoints:
Declarative configuration: