One of the hardest things we have to do it to get people who aren’t familiar with RavenDB acclimatize to it. This onboarding process is typically done by doing something tangential to RavenDB, which allows the new guys to learn RavenDB while doing something useful.
This serves several purposes:
- It means that Iftah needed to learn how to effectively use RavenDB, and how to do that in the context of a real world problem, instead of dummy invented one.
- We get to have the Quartz.NET integration in the end. We even have a Nuget package for it, to make things easier all around.
If you don't know what Quartz.NET is…
… a full-featured, open source job scheduling system that can be used from smallest apps to large scale enterprise systems.
And was precisely what he did, which means that you can head to Quartz.NET with RavenDB, setup a couple of configuration options, and you'll have this:
This make it much nicer to look at what is going on, understand the various jobs, schedulers and triggers, and work with them. The fact that we can put pretty much all of it in once place means that we can have this:
Instead of this:
It also means that complex jobs, which require non trivial state (JobDataMap) have much easier time, because they don't need to try to shove all of that into the relational model, they can just store the state as is in RavenDB as JSON values.