[Fix][Connector-V2] Add missing MULTI_TABLE_SINK_REPLICA option to PulsarSinkFactory#11160
Open
nzw921rx wants to merge 3 commits into
Open
[Fix][Connector-V2] Add missing MULTI_TABLE_SINK_REPLICA option to PulsarSinkFactory#11160nzw921rx wants to merge 3 commits into
nzw921rx wants to merge 3 commits into
Conversation
DanielLeens
approved these changes
Jun 22, 2026
DanielLeens
left a comment
Contributor
There was a problem hiding this comment.
Thanks for the quick follow-up here. I re-checked the current head against the multi-table sink contract and I do not see a source-level blocker.
What this PR fixes
- User pain: The Pulsar sink already implements the multi-table sink contract, but the factory was missing
MULTI_TABLE_SINK_REPLICAin its option rule, so connector-spec validation fails before users can reach the runtime path. - Fix approach: The PR adds
SinkConnectorCommonOptions.MULTI_TABLE_SINK_REPLICAback toPulsarSinkFactory.optionRule(). - One-line summary: This is a precise contract-alignment fix between the factory option rule and the already implemented multi-table sink runtime path.
Runtime path I traced
Job submission
-> `PulsarSinkFactory.optionRule()` now declares `MULTI_TABLE_SINK_REPLICA`
Runtime contract
-> `PulsarSink` implements `SupportMultiTableSink`
-> `createWriter()` returns `PulsarSinkWriter`
-> `PulsarSinkWriter` implements `SupportMultiTableSinkWriter<Void>`
Result
-> the submission-time contract now matches the existing multi-table runtime path
Key findings
- The normal connector-spec / submission path hits this change directly.
- The fix is precise: it exposes an already implemented runtime capability instead of changing write behavior.
- I re-checked the factory, sink, and writer together, and the contract is now complete.
Blocking items
None at the source-code level on the current head.
Other review notes
- No additional non-blocking source-level comments from this round.
Compatibility and side effects
- Compatibility: Fully backward compatible. This only restores a missing option declaration.
- Side effects: No runtime write-path or resource-model side effects from this change.
- Error handling / logging: No new error-handling or logging concerns from this diff.
- Tests: For this contract fix, the key proof is the factory/sink/writer contract alignment, which now looks complete on the current head.
- Docs: No docs update is required.
- CI: Some checks were still queued, but that does not change the source-level conclusion.
Merge verdict
- From the current head, I do not see a source-level blocker. This looks good to merge.
Member
|
LGTM if the CI passes,You can try again |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose of this pull request
PulsarSinkFactoryimplementsSupportMultiTableSinkWriterbut itsoptionRule()did not declareSinkConnectorCommonOptions.MULTI_TABLE_SINK_REPLICAas an optional parameter, causingConnectorSpecificationCheckTestto fail:Changes
SinkConnectorCommonOptions.MULTI_TABLE_SINK_REPLICAto the.optional(...)list inPulsarSinkFactory.optionRule()How was this patch tested?
./mvnw test -pl seatunnel-dist -Dtest=ConnectorSpecificationCheckTest#testAllConnectorImplementFactoryWithUpToDateMethod