Page MenuHomePhabricator

Design strategy for updating MCS/PCS content
Closed, DeclinedPublic

Description

Reading infrastructure is developing a bunch of new endpoints to be used in mobile - media, references, summary, meta etc. All of these pieces of content will eventually use RESTBase storage and will be actively pregenerated meaning that the exact render of any revision can change at any time.

However, it the clients the pieces of content will be loaded on demand and all the pieces should reflect the same render (have the same revision/tid pair), but if change-prop updates all the pieces independently, the TIDs will be different and the apps will not be able to request a specific matching render. Mismatches can lead to broken references, incorrect galleries etc. This means we need to develop a way to update all of the endpoints in one request. I see a couple of ways:

  1. A no-cache request to mobile-sections also updates summaries, media and other PCS endpoints and stores all of them with the same TID
  2. We provide a TID in a header based on the timestamp of the event that initiated the rerender
  3. We create a composite endpoint that is called to update all the pieces together.