On every worker in the distributed Connect cluster, add exactly.once.source.support=preparing to the worker properties file
Perform a rolling restart of all workers; in 'preparing' mode workers begin fencing old task generations but do not yet enforce exactly-once writes to Kafka
Once all workers report 'preparing' mode (check REST GET /connectors/{name}/status), update every worker config to exactly.once.source.support=enabled
Perform a second rolling restart; workers now use transactions to write source records and their offsets atomically, preventing duplicates on producer failure
Verify: check the internal Connect offsets topic and confirm records include transactional metadata; monitor for transaction abort metrics on the broker
Test failover: kill a worker mid-task and confirm no duplicate records appear in the target topic after the task restarts on another worker
Known gotchas
Exactly-once source support is only available in distributed mode; standalone Connect workers cannot provide this guarantee regardless of configuration
Skipping the 'preparing' phase and going straight to 'enabled' on an existing cluster may cause tasks to fail with ProducerFencedException if old task generations are still active
The source connector itself must implement ExactlyOnceSupport.SUPPORTED via the exactlyOnceSupport() method; connectors that return UNSUPPORTED will not benefit from the worker-level setting
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp