AxonFramework / AxonFramework

Framework for Evolutionary Message-Driven Microservices on the JVM
https://axoniq.io/
Apache License 2.0
3.32k stars 788 forks source link

Revise Event Scheduling support #3104

Open smcvb opened 1 month ago

smcvb commented 1 month ago

There are roughly two main tasks when it comes to revising the EventScheduler support within Axon Framework.

Firstly, the EventScheduler API should comply with the new Unit of Work (as introduced in #2953) and follow a similar layering solution as performed for the Command Bus in pull request #3003. This part of the issue should be regarded as a must, as without these changes, Event Scheduling would no longer fit within the design of Axon Framework 5.

Secondly, we want to reimagine the placement of event scheduling logic. Right now, the implementation schedules events in a storage layer separate from the Event Store, as is done through Quartz, JobRunr, and db-scheduler. The only solution that combines the concerns of event storage/publication and scheduled event storage/publication is Axon Server. Thus, the reimagining comes in on this front: shouldn't we make scheduled event storage a first-class citizen of every Event Store?

Although important to discuss within the development of Axon Framework 5 due to the breaking changes this would introduce, this reimagining is not a must for the time being.