Gabriel has suggested we use a similar front end to parsoid; e.g. use Varnish. This would also offload the caching to varnish layer for bookcmd=download requests.
Basically it would look like:
+------------------------------+ | Bi layer varnish boxes | MediaWiki --> LVS Boxes --> | Frontend -> CARP -> Backend | --> LVS Boxes --> Render Servers +------------------------------+
We could set a cache control of a couple days on rendered output; use the standard varnish LRU purge; and manually issue a purge when we get a forced render come in from MediaWiki.
-- However --
Because we wish to be backwards compatible with the old setup; we must always first issue a 'render' command to the backend. The only way to then know if something has been rendered is if it can find it in Redis. So we'll still have to garbage collect the Redis stuff...