Runbook wiki for an engineering team
Your task
Your engineering org keeps its runbooks in an internal wiki: 3,000 pages in Markdown, used by 400 engineers. A page is edited in the browser and saved as a whole. During an incident, two or three people often edit the same runbook within a few minutes.
Last week two engineers edited one page at the same time. The second save replaced the first, and a fix someone had written down was lost. Every save must keep the page's full history, and anyone can restore an older version. Pages are usually under 50 KB, and the wiki gets about 2,000 saves a day.
What does a save request carry, and what happens when it arrives after someone else has saved the same page?
It covers
- Optimistic concurrency
- Revisions
- Lost updates