Look into how we can register LoadingCaches more easily
Currently, we implement loading caches manually in classes that require them making them harder to manage. We should look into implementing some sort of harness that would allow us to register a runnable as a loading cache source and standardize how we manage them as well. This would give us better control over caching in services and use new configuration models to better enable highly configurable and low-effort caching solutions.
Some things to consider for the service:
- allowing for different refresh rates to be configured
- Optionally allowing scheduled calls to force a cache to refresh if it hasn't been called (keep it fresh)
- Allow for cache usage to be configurable according to the current profile (dev vs prod)
- Create mechanism to use bookkeeping/stats which are available from the Caffeine cache