Factor aggregation job handling to seperate state machine #752
+489
−310
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.
By having the logic to handle an aggregation job live in a state machine like this instead of having just a top level function that does it all, it's easier to give users of the library ways to customize where and when the y want to execute each part necessary in the aggregation of report shares, without compromising on the correctness of these.
This PR only transforms
helper::handle_agg_job_req
into a state machine, but the other top level functions could also be transformed in similar ways. Future PRs will use this to eventually implement the async handling of aggregation jobs