Once we're sure that our changes should remain, we can update the existing documentation to include revid details.
https://phabricator.wikimedia.org/diffusion/MSKA/browse/master/docs/diagrams/output/
Seems to be written in PlantUML, which includes an online editor.
One approach would be to create a new sequence or process diagram, zooming in on the "get GeoJSON data" step. The important new logic to mention is,
- Kartographer will generate a versioned static map link when the $wgKartographerVersionedStaticMaps flag is enabled.
- Kartotherian switches depending on the versioned_maps configuration, and either passes the revid through to mapdata or ignores it.
- The mapdata client sends either a page title or a revid to the mapdata API.
- The mapdata API switches depending on $wgKartographerVersionedMapdata. If true and a revid is requested, then historical mapdata is returned. This can be represented as several flows which fall through to "current mapdata", and one special flow with several fail-open branchpoints, that results in historical mapdata.
Review:
Draft for an sequence diagram that extends the get GeoJSON step from staticMapRequestDataFlow (edit in plantUML). I went with the term "User" instead of "Frontend" or "Webbrowser", because the existing diagrams also use that term.
┌────┐ ┌────────────┐ ┌────────────┐ │User│ │Kartotherian│ │Kartographer│ └─┬──┘ └─────┬──────┘ └─────┬──────┘ │ Request (domain, title, revId, groups, etc.)│ │ │ ────────────────────────────────────────────> │ │ │ │ │ │ title, revId, groupid │ │ │ ──────────────────────> │ │ │ │ │ GeoJSON │ │ │ <────────────────────── │ │ │ │ png │ │ │ <──────────────────────────────────────────── │ ┌─┴──┐ ┌─────┴──────┐ ┌─────┴──────┐ │User│ │Kartotherian│ │Kartographer│ └────┘ └────────────┘ └────────────┘