Document:
- Detailed steps for how we deploy
- Any dependencies between steps
- Rollback plan for each step
- Assess risks
- Split out the steps which are safe to take immediately, make tasks for these.
Draft:
Step | Hard dependencies | Deployment notes | Rollback notes |
mapdata JS client passes revid parameter through to API | None | No independent deployment, this is an in-repo dependency for Kartotherian and Kartographer. | Rollback is atomic and implicit if Kartotherian or Kartographer is rolled back. |
Kartotherian passes revid parameter through to mapdata client. | mapdata client | None | Reverts to legacy "title" mode. Includes a feature flag to prevent pass-through in case we see problems. |
mapdata API responds to revids. | None | None | If rolled back, revid requests will give strange results e.g. latest revision for the title. |
Kartographer renders revid parameter in mapframes. | Entire pipeline must be prepared. | Must monitor cache size, hit ratios, API errors. | Rendered pages cannot be rolled back without purging all articles. |
So far, it looks like we want to add feature flags to Kartotherian and the Kartographer renderer. The server flag gives us a soft disable, it will intercept title+revid requests and downgrade them to legacy title-only requests before sending along to the mapdata API and rendering. The Kartographer flag is used to enable on pilot wikis, but is not easy to disable again.