refactor(cdc): make connector identifiers semantically specific - #329
refactor(cdc): make connector identifiers semantically specific#329seonghobae wants to merge 36 commits into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Exact-head CI RCA and minimal repair — 2026-09-07Predecessor head Commit Fresh exact-head runs were created for |
Naming defect
The organization-owned CDC bounded context exposed generic one-word identity vocabulary in two related seams: configured source declarations (
SourceSpec.id()/SourceSpec.type()) and connector SPIs (CdcSourceConnector.id()/CdcTargetConnector.id(), plus genericIDconstants and registry locals). The bounded context already supplies the precise concepts: source identity, target identity, and source connector type.TDD sequence
The original regression-first commit required
SourceSpec.sourceId()/SourceSpec.sourceType()while pinning the established{id,type}description keys as a compatibility boundary. A later regression-first commit949b04aafdaa895ff273cfb91d2b7ff4bc5dacfcrequiredCdcSourceConnector.sourceId()andCdcTargetConnector.targetId()before those semantic accessors existed in production. Successor commits implement both contracts through ordinary non-force history.Implemented repair
CdcSourceFactory.SourceSpecand configuration internals usesourceId/sourceType.CdcSourceConnector.sourceId()andCdcTargetConnector.targetId()are the organization-owned connector identity vocabulary used by registries, controllers, built-in connectors, and tests.SOURCE_ID/TARGET_ID; historicalIDconstants andid()SPI methods remain deprecated compatibility aliases rather than internal authority.CdcSourceRegistry/CdcTargetRegistryuse semantic fields, parameters, locals, and lookups (sourceConnectorsById,targetConnectorsById,sourceId,targetId)./api/cdcresponse keys such asid, and existing Spring configuration keysid/type, remain unchanged at the compatibility/anti-corruption boundary.Safety
No connector delivery behavior, Debezium/Kafka semantics, database persistence, secrets, dependency versions, runtime authority, or wire/config key changes are intended. The SPI compatibility aliases keep existing generic callers available while repository-owned code uses semantic names. No force-push, bypass, gate weakening, skipped tests, or stale evidence.
Merge gate
Keep Draft until the unchanged current head has fresh required checks terminal-success, valid review findings/threads resolved, and ordinary repository review/protection requirements satisfied.