This implements the majority of the schema proposed in #7
Moves the different artifact types into their own package to consolidate logic re: cache keys
Has the types update the base artifact (aka the one without the ifAfterId set) if it sees a new schema on another pod to ensure new routers don't start up out of sync with old cached data
Removes the interface mapping to ensure that there's a fresh interface to access; was seeing crossover between requests
A number of organization changes to the code beyond artifact reorganization (e.g. moving the various query names into the uplink package)
Cache entries now follow a standard format to allow for more consistent logic across the artifact types; this is primarily through the use of cache's CacheItem type
S3 support should now be simplified due to the consistent caching package
Unfortunately the schema resolvers code necessitated a large chunk of these changes.
Short answer is that my next PR is just going to be adding tests. Given the need for customers to test, this is just getting it out the door but it's my next todo before S3 support.
Lots of changes here, but the gist here is that:
ifAfterId
set) if it sees a new schema on another pod to ensure new routers don't start up out of sync with old cached datauplink
package)cache
'sCacheItem
typeUnfortunately the schema resolvers code necessitated a large chunk of these changes.
Tests will be done in a future PR.