Hey Bogdan, Thanks for the nice articles! In the end did your team consider K8s CronJobs? For similar reasons to yours: db perf, I don't want to use Hangfire anymore, but also to keep the overall architecture simpler. Since we will anyway run in K8s, we consider using K8s CronJobs. The idea would be to call an HTTP endpoint, for ex: /jobs/doSomeLongRunningStuff Since it's not a good practice to have long running HTTP calls, it would simply enqueue a message. Later on, this would be dequeued and processed. Basically we trade the DB for the message queue.
Thanks for the write-up, a very interesting read!
Things that might reduce magic strings when using Quartz is using the typed configuration builders. There are integrations for ASP.NET Core and Hosted Services which both give you the configuration API which is documented quite well in MS DI Integration documentation . These actually utilize SchedulerBuilder from the core Quartz library so the strongly-typed builder for scheduler is available to without these dependencies too.
There's no built-in dashboard like you've stated, but there are options like SilkierQuartz if you want to plugin something.