This work will live mostly in JsonConfig with a portion in Chart, and is being done as part of the Charts taskforce.
Implementation for the cache invalidation based on global Data: page usage tracking as envisioned by T370378:
On all wikis:
- provide an API action to fire off this job for a given Data: page
On the shared wiki (Commons):
- job queue job to get a list of all wikis with usages for a given Data: page
- when a local JsonConfig page changes and we are the shared repository, fire off API requests to each wiki using the page requesting them to do their local cache invalidation
This allows for safely propagating data from the Commons context to the individual wikis for performing their own invalidations in their local databases, with only a limited number of HTTP hits made even in the case of thousands of pages using a resource.
Concerns:
- don't expect to need to put rate limiting or permission controls in this system, but if they were applied we'd want to use some secret key or something to validate the requests from the automated system.