Hi all,
Michael, from the given description I am currently not entirely sure what's broken and what's not.
I did however test this stuff locally.
What I noticed is that I get an `AxonConfigurationException` if I both have property file configuration for a Saga and Java configuration (by using the EventProcessingConfigurer).
When using either one, nothing goes wrong on my machine.
So, could you confirm you have both present in your application?
If so, would you be able to provide a bug report on the
issue tracker for us to investigate this further?
Then we can proceed to solve the problem at hand.
When it comes to replaying Sagas through the TrackingEventProcessor (TEP), that's currently not an option at all.
The Saga is a specific type of EventHandlerInvoker, which for it's EventHandlerInvoker#supportsReset returns false on all occasions.
It's this support reset method which is validated when you issue a TrackingEventProcessor#resetTokens operation.
This behaviour is currently hard coded as our thought process was that a Saga introduces side effects, and side effects are something you would (likely) never want to replay.
Imagine your Saga would send emails to your customers.
Replaying said Saga would mean they'd be getting the same emails again, which could lead to further confusion.
However, we do acknowledge there might be off scenarios where it does make sense to issue a replay of a Saga.
To that end, we've created an issue on the tracker,
#1458 to be exact.
If we trace back to Simon's original four suggestions to cope with "rehandling events", option four (being "Make Saga detect it is in
replay") could only be achieved if we have implemented
#1458.
The other three options are really up to the user of the framework as far as I can tell.
Only option four leaves room for improvement in Axon Framework as far as I can tell.
That's my two cents to the situation.
Let me know what you think!
Cheers,
Steven