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 [[ https://plantuml.com/index | 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.
##Open questions:
* Do we want an [[ https://plantuml.com/activity-diagram-beta | activity diagram ]] for the above described workflow?
* Is the new sequence diagram with the revid sufficient or would it be better have that included in the existing diagrams?
##Review:
Draft for an **sequence diagram** that extends the //get GeoJSON// step from [[ https://phabricator.wikimedia.org/diffusion/MSKA/browse/master/docs/diagrams/output/staticMapRequestDataFlow.png | staticMapRequestDataFlow ]] ([[ https://www.plantuml.com/plantuml/umla/ROun3i8m34Ltdy8ZIE426L0d5ZPk42bMC6hju3YSdqnLfNIpllpVVqlpPDwt5HwcuYGPRtTyZapzJSP98hxeswavNh9kYIMWiwyKqEZ7EM0nxRLTuLZQ8SLI7L4ywt06E3xDov-cCd5tqOXL2YpZ7Fv_ | 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│
└────┘ └────────────┘ └────────────┘