Describe the idea or problem we need to implement or solve. Be concise, outline the benefits of doing this and the risks of not doing it. Briefly provide one or more potential approaches.
Describe the chosen approach (i.e., its architecture, technology selection and other relevant design information) to implement the idea or solve the problem. Be as specific as you think is necessary.
Outline how the solution will be tested.
Describe how this solution is expected to work (or not) on both GitLab.com and self-managed.
Outline the automation necessary to deploy and operate the designed solution. What metrics are important? What alerts can we foresee? Is passive monitoring required?
Describe how the implemented solution will be monitored.
List any additional considerations that may play a role in the design (for instance, licensing).
If there are any alternatives which merited significant considerations, discuss them briefly.