Currently, code that needs to purge or update data derived from page content (during purge, import, undeletion, etc) does so by calling WikiPage::doUpdates and/or by running the DataUpdates returned by Content::getSecondaryLinksUpdate directly.
Note that calls to Content::getSecondaryDataUpdates should not be replaced directly with calls to the new ContentHandler::getSecondaryDataUpdates proposed in T194038. Callers should not have to know about individual slots.
In the context of the new page update interface for MCR, a new concise interface should be exposed for this purpose. This should be a stateless service, exposing the following methods:
* purgeCaches
* runSecondaryDataUpdates
* updateParserCache
However, in order to run the DataUpdates, the Content of Revision needs to be rendered, and the rendering needs to be cached.
Doing that with a stateless services is blocked on having a RenderdRevisionCache, which is blocked on having RenderedRevision, which is blocked on having a RevisionRenderer, which is blocked on SlotRoleHandler.
As an intermediate step, WikiPage could have a getXyzUpdater( Revision ) methods that would return an intermediate implementation of that interface. The instance returned by WikiPage could be specific for the WikiPage, and make use of the state of WikiPage for caching the rendered version.