I want to add scheduling capabilities to my Java server (Spring/MySQL) and in the middle of evaluating Quartz, which is both popular and notorious.
The product I am building is a SaaS, and my architectual philosophy is somewhere in the middle of the scale between a good(?) old monolilth and microservices. Based on this philosophy I do see scheduling as a seperate service, and thus plan to have one/many scheduling servers in my backend.
When evaluating Quartz I noticed to following pitfalls when working with a remote instance of Quartz (MySQL jobstore):
- If the server is down - the client cannot schedule tasks (synchronic communication)
- Since it uses Java RMI, I assume there may be problems with different versions of Java/Quartz in the client and the server
My questions for the Quartz experts are:
- Are my assumptions correct?
- Is there a starndard communication bridge for Quartz over Kafka/Rabbit that allows it to communicate via asynchronic communication?
- If there is no standard bridge, how do you deal with real-life scenarios in production-level enterprise-level applications?
- Whould you recommend Quartz in general or do you suggest other alternatives? I know Quartz is notorious, but it is also main-stream, if you offer alternatives, pls provide products that are widely addopted.
Thanks :)