The caching story

Splitting this from

to talk about caching and how we would like it to develop in the future.

To sum up during my stream @xet7 mentioned that he has used various caching packages with a great success. Even the deprecated appcache (there seems to be an update for @harrison appcache as well).

For the users collection there is @msavin usercache, which seem to have inspired @wildhart mergebox-cache.

For subscriptions there is @ccorcos subs-cache, though I do recall removing it a while back for some issue we had in react with it.

For methods there is epotek:method-cache, which seem to use GraphQL DataLoader for heavy methods.

Finally there is ground:db to create a complete client-side DB.

All these solutions have one big thing in common. They have not been updated in a while.

From new things we have this PR:

So to continue the discussion. I want to ask if Iā€™m missing anything, what are peopleā€™s experiences and which packages should we focus on first to bring back/modernize for the biggest caching/performance impact.

4 Likes

Due to the limitations of the localstorage, a good path with PWA is the use of service-workers to properly cache at the very least the static files served by meteor i.e. js and css bundles. Then rules for static files in public folders like images and fonts.

Googleā€™s workbox is a good foundation for this.

P.S. Workbox v7 requires Meteor 3 due to node version requirements

1 Like

We recently started using subs-cache and seems to work great, so will probably use it more widly. Something like usercache / mergebox-cache would be really useful. We had a custom one for the user collection using grapher. Something in MCP or even better in the core would be great :+1:

2 Likes

@banjerluke posted this related to GroundDB which he is calling Ground Collection

2 Likes