And that’s pretty much what Cache Channels do. A few extra Cache-Control headers associate a channel with a response and allow saavy caches to incrementally extend the freshness of that response as long as two conditions are true;
1) The cache is in touch with the channel, and
2) The channel doesn’t say that the response has become stale.
The default implementation uses an archived Atom feed to represent the contents of the channel, which the cache to stay in touch. This takes the burden of keeping track of subscribed caches away from the server, and as a bonus, since HTTP is used as the transport, the channel it self is cacheable, meaning that scaling this to a large cluster of caches can be efficient easily.