Redpanda Connect v4.106.0 - CDC Silent Loss Fixes


Redpanda Connect v4.106.0 was published on 20 August 2026. The tag fixes silent data loss in aws_dynamodb_cdc, cockroachdb_changefeed, and salesforce_cdc, where checkpoints could advance before downstream work was acknowledged. A full Salesforce Pub/Sub buffer now applies backpressure instead of dropping events.

The full release notes and downloads are on the GitHub release page. The same tag is summarized in CHANGELOG.md.

A CDC input that writes a checkpoint before the batch is acked will skip those rows after a crash. That is the class of bug this tag is repairing.

PR 4687 gates aws_dynamodb_cdc snapshot checkpoint persistence on downstream acknowledgments. Rejected batches are redelivered instead of skipped. The same change covers stream rotation and restart. start_from: latest was applied to child shards and to shards found after initial setup that had no checkpoint. Those shards still held backlog. The old behavior treated them as caught up and dropped that backlog with no error.

PR 4688 fixes cockroachdb_changefeed. Transaction rows and backfill batches that share timestamps could be skipped on restart. The input now checkpoints resolved timestamps only. The cursor advances more slowly. That is the correct cursor if the goal is no loss.

PR 4689 does the equivalent work for salesforce_cdc. A full Pub/Sub gRPC buffer used to drop events. Schema and decode failures could lose batches on reconnect. Nacks did not pin checkpoints. The buffer now applies backpressure. Reconnect keeps the batch. A nack pins the checkpoint so the failed work is replayed.

None of this adds a new source. It is the existing CDC inputs stopping a silent skip.

mongodb_cdc used to run the initial snapshot again after a restart even when that snapshot had already been fully acknowledged. PR 4690 writes the checkpoint as soon as the snapshot is acked. A restart then resumes the stream.

If the stored stream position can no longer be resumed, for example because it aged out of the oplog, the input runs the snapshot again. A breaker fails loudly instead of looping. The new on_unresumable_position field controls the lossy case where no snapshot is taken. The default is fail. The new checkpoint_write_timeout field bounds the detached checkpoint writes for the store after a snapshot and for the recovery clear.

The same PR adds AWS IAM authentication (MONGODB-AWS) for MongoDB Atlas. The mongodb input, output, processor, and cache, and the mongodb_cdc input, get an aws configuration block. It accepts the ambient credential chain, static keys, and assume-role chaining.

That IAM block is the only new connector capability in the tag. The snapshot work is resume correctness.

salesforce_cdc now classifies schema fetch errors as deterministic or transient and bounds decode failures. The point is to stop infinite retry loops and livelocks. Terminal failures are surfaced on the health check, so a stuck component can fail the probe instead of looking healthy while it spins.

The same PR 4689 fixes an off by one error in schema retry budgeting and credential refresh during unanchored schema retries. Under the default unlimited reconnect policy those bugs could stall the input with no useful error.

Retry classification is what makes the loss fix runnable. Without it, a bad schema becomes an endless reconnect loop.

Nack handling changed on two inputs.

aws_dynamodb_cdc now supports auto_replay_nacks. Transient downstream failures can be retried in process. When auto_replay_nacks is disabled, a nack advances the checkpoint. cockroachdb_changefeed takes the same contract. A nack advances the cursor. That is an opt in to drop rejected messages, matching the framework contract.

If you currently disable auto_replay_nacks and expect a nack to hold the cursor, this tag will not do that. Read the setting before you roll it.

mongodb_cdc defaults on_unresumable_position to fail. The lossy path that skips a snapshot is not the default. Set the field if you want that behavior.

CDC connector documentation for Microsoft SQL Server, MongoDB, and OracleDB was updated with measured performance, scaling limits, and configuration guidance. That is PR 4691. It is documentation only. It does not change runtime behavior.

No config schema break is listed beyond the new fields and the nack cursor contract.