-
Notifications
You must be signed in to change notification settings - Fork 2.1k
enhancement(topology): add per-sink authoritative acknowledgement control #25326
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
connoryy
wants to merge
14
commits into
vectordotdev:master
Choose a base branch
from
connoryy:connor/upstream-authoritative-acks
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
edc1285
feat(sinks): add per-sink `authoritative` acknowledgement field
connoryy 0247ac2
feat(sinks): implement RFC 6517 authoritative sink semantics
connoryy f50aa97
Move finalizer stripping from sink-level to fan-out-level
connoryy df3ec28
Address review feedback on authoritative sink acks
connoryy 31828f7
test: add compute_authoritative_components and backwards compat tests
connoryy ad83b95
test(topology): add e2e test proving authoritative sink controls ack …
connoryy fa18d76
fix: add authors to changelog fragment
connoryy c11c9dd
style: fix formatting
connoryy d1fa4b0
Merge branch 'master' into connor/upstream-authoritative-acks
connoryy d47d3e6
fix: clippy map_unwrap_or in fanout replace handler
connoryy 13da597
Merge branch 'master' of github.com:vectordotdev/vector into connor/u…
connoryy 24e9db5
Merge remote-tracking branch 'connoryy/connor/upstream-authoritative-…
connoryy f609fea
fix(topology): require enabled for authoritative sinks in BFS
connoryy 6257497
fix(topology): preserve legacy ack behavior for pipelines without aut…
connoryy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| Added `authoritative` field to sink acknowledgements configuration. The field defaults to `false`; the feature only activates when at least one sink explicitly sets `authoritative: true`. When active, only **authoritative** sinks block source acknowledgements -- non-authoritative sinks have their event finalizers stripped so the source can acknowledge events as soon as all authoritative sinks have processed them. This prevents non-critical sinks (console, metrics, etc.) from blocking acknowledgement of critical sinks. When no sink sets `authoritative: true`, there is zero behavioral change from previous versions. | ||
|
|
||
| authors: connoryy |
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Merging
authoritativewithself.authoritative.or(other.authoritative)silently picks one value when multiple config files set differentglobal.acknowledgements.authoritativevalues. Unlikeenabled, there is no corresponding conflict check inGlobalOptions::merge, so contradictory defaults can be accepted and change runtime ack-chain behavior based on merge order instead of failing fast. This is user-visible in multi-file deployments that rely on deterministic global ack semantics.Useful? React with 👍 / 👎.