To implement its scheduling policy, the recurrent visit scheduler needs to be able, fairly quickly, to get a list of origins and their latest visits present in the archive.
We also need to store more information, e.g. how long ago the last eventful visit was, whether the last run failed (and if so, for how long tasks have been failing), etc.
This cache needs two components: a database and associated API, and a journal client we can use to update it.