Change Data Capture configurations
Configure dedicated CDC as disabled, direct AMQP, or Parix-managed AMQP with validated webhook delivery.
Use Cluster → Change Data Capture to control how a dedicated TigerBeetle deployment publishes change events.
Parix supports three CDC modes:
- Disabled: remove the active CDC runtime configuration
- Direct AMQP: configure TigerBeetle to publish directly to your AMQP broker
- Managed AMQP: let Parix operate the provider-side capture path and forward events to one or more webhook destinations
Availability by plan and provider
| Database | CDC configuration |
|---|---|
| Developer (shared) | Not available. CDC and webhooks are not enabled for shared databases. |
| Dedicated / Production on GCP | Direct AMQP and Managed AMQP are supported by the current provider runtime. |
| Dedicated / Production on AWS | Direct AMQP and the implemented shared-broker Managed AMQP path are supported for AWS-backed deployments where AWS is available. |
| Other providers | Managed AMQP is unavailable and the current apply workflow has no supported runtime reconciler. |
The live create catalog is authoritative for provider and region availability. AWS-backed paths can exist for current or non-production deployments even when AWS is not offered for new production databases.
Before you begin
You need:
- an organization owner or administrator role
- a Dedicated or Production database with a profile that is not Provisioning
- for Direct AMQP, a reachable AMQP broker with a public literal IPv4 or IPv6 address
- for Managed AMQP, at least one public literal-IP HTTPS webhook endpoint
- credentials or signing secrets stored outside the dashboard before you begin
- a consumer-side rollout plan; changing or disabling CDC can interrupt downstream delivery
Parix stores CDC secrets separately and does not return their plaintext to the form. Have replacement values ready before rotating a password or destination secret.
Open Change Data Capture
- Select the organization.
- Open the database from Dashboard.
- Select Cluster.
- Select Change Data Capture.
Select the required mode under 1. Mode. The remainder of the form changes with that choice.
Configure Direct AMQP
Choose Direct AMQP when TigerBeetle should connect to a broker you operate.
Fields
| Field | Requirement |
|---|---|
| Host | A public literal IPv4 or IPv6 address. DNS hostnames are rejected even if the placeholder resembles one. |
| Port | Integer from 1 through 65535. The form starts at 5672. |
| Username | Required broker username. |
| Password | Required on first save. On later edits, leave it blank to keep the stored password. |
| Virtual host | Broker vhost; defaults to /. |
| Exchange | Required exchange name. |
| Routing key | Required TigerBeetle CDC routing key. |
| TLS enabled | Connect to the broker with TLS when enabled. Disabled by default. |
| Publish confirms | Require broker confirms for published events. Enabled by default. |
Steps
- Select Direct AMQP.
- Enter the public literal IP and port.
- Enter username, password, vhost, exchange, and routing key.
- Enable TLS enabled when the broker listener requires TLS.
- Keep Publish confirms enabled unless your broker contract explicitly does not support them.
- Select Queue CDC changes.
- Open Changes and wait for the CDC change to reach Completed.
- Verify a known change reaches the broker and consumer.
Expected result
The page reports CDC direct AMQP changes queued and apply workflow started. After completion, TigerBeetle uses the saved direct broker configuration. Existing password text remains hidden; a blank password on a later edit preserves it.
Configure Managed AMQP
Choose Managed AMQP when Parix should capture changes through its provider-managed path and deliver them to HTTPS destinations. The managed provider is inferred from the database profile; there is no customer-facing provider selector on this page.
Destination controls
Select Add destination for each consumer. A destination contains:
| Control | Requirement |
|---|---|
| Name | Required descriptive name, up to 80 characters. |
| Endpoint URL | Required public literal-IP HTTPS URL, for example https://93.184.216.34/cdc. Use the default HTTPS port (443) and do not include credentials in the URL. DNS names, HTTP URLs, loopback, private-address destinations, and non-default ports are rejected. |
| Auth mode | None, Static header, or HMAC SHA-256. |
| Active | Only active destinations receive delivery and count toward the required active destination. |
| Header name | Required only for Static header, for example x-api-key. |
| Secret | Required on the first save for Static header or HMAC SHA-256. Leave blank on a later edit to keep the stored secret. |
Use Remove to remove a destination from the submitted configuration. Managed AMQP requires at least one destination with Active enabled.
Steps
- Select Managed AMQP.
- Select Add destination.
- Enter a name and public literal-IP HTTPS URL.
- Select the auth mode.
- For Static header, enter the header name and secret.
- For HMAC SHA-256, enter the signing secret.
- Keep Active enabled for at least one destination.
- Add any additional destinations and review inactive entries.
- Select Queue CDC changes.
- Follow the row in Changes to Completed.
- Open Webhooks and verify delivery history for the destination.
Expected result
The page reports CDC managed AMQP changes queued and apply workflow started. After completion, active destinations become eligible for delivery. Stored secrets are represented only by the ability to leave the field blank; their plaintext is not displayed.
Disable CDC
- Select Disabled.
- Confirm that downstream systems no longer depend on new CDC delivery.
- Select Queue CDC changes.
- Wait for Changes to report Completed.
The queue message is CDC disabled configuration queued and apply workflow started.
Disabling is operationally destructive for the delivery path: consumers stop receiving new CDC events after the provider runtime applies the change. The dashboard does not promise replay or backfill for an interval in which CDC is disabled. Preserve downstream checkpoints and establish a separate reconciliation procedure before disabling production CDC.
Changing modes also deletes the saved configuration that belongs to the old mode. Leaving Direct AMQP deletes its stored password. Leaving Managed AMQP deletes its destinations and destination secrets. Switching back requires recreating those destinations and re-entering their secrets.
Workflow and status behavior
CDC changes are asynchronous:
- The route validates the mode, fields, address policy, and secrets.
- Parix stores the desired configuration with status queued.
- The apply workflow marks it running.
- Parix reconciles the provider runtime.
- The configuration becomes active, or error with the last apply failure.
The customer-visible Changes row transitions through Pending, In progress, Completed, or Failed. The immediate queue message proves only that the request and workflow were created; it does not prove broker connectivity or webhook delivery.
Changing mode can restart or reconfigure the provider-side CDC runtime. Make changes during a controlled window and verify consumer continuity afterward.
Current limitations
- CDC is dedicated-family only; shared Developer databases have neither CDC configuration nor Webhooks.
- Direct AMQP requires a public literal IP. TigerBeetle's current AMQP field does not support using a DNS name here.
- Managed destinations require a public literal-IP HTTPS endpoint. A valid URL string alone is insufficient.
- Managed AMQP supports only GCP and AWS-backed runtimes in the current implementation.
- At least one active destination is required for Managed AMQP.
- Destination delivery history is available for Managed AMQP on Webhooks. Direct AMQP broker delivery is not shown there.
- The configuration form does not test end-to-end delivery before queueing. Completion must be followed by a real event verification.
Troubleshooting
Change Data Capture is missing
The database is on the shared Developer plan. CDC and Webhooks are not enabled for shared databases.
Managed AMQP is disabled
The active database provider is not one of the supported managed providers, or the profile/provider is not yet available. Wait for provisioning to finish and confirm the provider on Dashboard.
Direct host is rejected
Replace a DNS hostname with the broker's public literal IPv4 or IPv6 address. Confirm the address is publicly routable and the selected port accepts the configured TLS mode.
Destination URL is rejected
Use https:// with a public literal IP. Do not use a domain name, http://, localhost, link-local, or a private network address.
The queue button is disabled
Check for:
- a missing profile or Provisioning status
- missing Direct AMQP host, username, exchange, routing key, valid port, or first-save password
- Managed AMQP with no active destination
- an unsupported managed provider
- a role other than organization owner or administrator
An edit asks for a secret again
The stored-secret marker may be absent because this is a new destination, its auth mode changed, or the previous secret was removed. Enter a new secret. Never paste a secret into the destination name, URL, or troubleshooting notes.
Changes reports Failed
- Record the failed change and time.
- Recheck the literal IP, port, TLS mode, broker credentials, exchange, and routing key for Direct AMQP.
- Recheck HTTPS reachability and auth configuration for Managed AMQP.
- Inspect Logs and the configuration's delivery history where available.
- Correct the form and queue a new change only after the previous workflow has ended.
See Observability, backups, and CDC for the combined checklist.
Next steps
- Use Webhooks and CDC to inspect managed delivery history and filters.
- Use Logs to correlate runtime apply failures.
- Return to Cluster configurations for the complete Changes status model.