Make Couchbase sink readiness timeout configurable
Added a positive, seconds-based `ready.timeout` option and carried it from Couchbase sink configuration into the SDK's bucket-readiness wait.
apache/seatunnel · #12168
Connector resilience feature
SeaTunnel users can now extend the Couchbase sink's bucket-readiness window for slow, busy, or rebalancing clusters without changing write retry behavior.
Problem
The sink hard-coded `waitUntilReady` to 30 seconds. Deployments whose bucket configuration legitimately took longer could fail during writer construction, with no supported way to increase the readiness budget.
Approach
Makes the readiness timeout configurable while preserving the existing 30-second default, older serialized writer options, SDK-managed connection attempts, write retries, operation timeouts, and failure cleanup. Invalid zero or negative values fail before connecting.
Impact and scope
- Allows operators to match Couchbase startup readiness to slower production cluster conditions.
- Preserves backward compatibility for existing jobs and serialized writer configuration.
- Keeps connection readiness distinct from write retry policy and documents the startup-delay tradeoff of larger values.
Validation
- All 37 connector unit tests passed on Java 8 and Java 11, covering factory wiring, validation, serialization compatibility, and cleanup.
- Real-service tests covered readiness failure followed by successful writing and invalid credentials; a separate 35-second outage reproduced the original timeout and verified recovery with the configurable budget.
- A SeaTunnel maintainer approved the change with explicit appreciation; final checks passed and the GitHub-verified merge commit credits Goutam Adwant. Related GH-12127 remains open because its intermittent failure cause is separate.