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
Live Replay #2740
Comments
First, thanks for filing this feature suggestion with us. I'm going to share some pointers to think about that may impact the design of the feature:
|
On the last point. What I've been thinking about is also the following I'm aware this might open another can of worms and there will probably be a performance impact but some people might choose this I'm just trying to solve the hassle we have had in the past of
which takes several releases for us |
Understandable, @bavodaniels! Just a thought, but would a nudge that your processors have finished replaying have allowed for a setup that automatically switches the database from the old to the new QM store?
|
that would work as well |
for my part you can close this feature request unless you see added value to keep it |
I think there's still worth discussing this with the team, as perhaps we can do something here. |
Feature Description
Make another variant of an event processor which does a replay while still accepting new events
Current Behaviour
Currently when you trigger a replay the event processor goes to event nummer 1 and processes them 1 by 1 until it reaches the tail. While this is happening changes from new events aren't persisted into the QM.
Wanted Behaviour
When triggering a replay on the newly implemented trackingeventprocessor will process old events as a normal replay would do but as soon as new events are added it switches to process those and then returns to process the replay. Or does this at the same time if 2+ threads are present on the processor.
Possible Workarounds
You could mimic the wanted behaviour by having 2 event processors filling in the same QM but one of them has a check in the event handlers to see if its replaying so each new event isn't handled twice.
lets say
then to trigger a replay you trigger the replay on MyReplayingEventProcessor then the QM is filled in again by replaying and in the meanwhile new events are accepted/persisted in the QM.
Context for this feature
When we did a replay when we had 23 million events it took us 3 months to do this. Now we are at 150 million events.
We duplicated the QM and TEP, did the replay, switched the tables around and then removed the old table
(this replay is on a table which is hard to optimize due to its nature, other tables replay way quicker)
Ps. I might try to pick this up if you deem it useful to be added to axon framework.
The text was updated successfully, but these errors were encountered: