[POC][DISCUSS] preserve batched events order #11099
Closed
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.
NOT FOR REVIEW, FOR DISCUSSION.
This is a quick and incomplete POC to demonstrate the idea of events ordering within batches as a possible solution for #10938 and #11062
I will not go over the problem description, see the above issues, but the idea of this solution here is:
order
field in the event with that sequence number, obviously this is just a POC and a proper sequence attribute should be implemented.multiReceive
method sorts the events based on that sequence numberorder
field before passing them to the output plugin.This implementation is incomplete and has a few caveats; only the memory queue assigns the sequence number, it does not take into account new events that are added by the filters.
I don't think solving the case of the new events would be too difficult.
With the following example:
It preserves order correctly with this patch:
It does not preserve order without the patch:
WDYT?