blob: 8b2a8c0f9e0ba7f09fd94cd437f546a03221ff30 [file] [log] [blame] [view]
---
title: "Design Doc - ${title} - Solution - ${solution-name}"
sidebar: gerritdoc_sidebar
permalink: design-doc-${folder-name}-solution-${solution-name}.html
hide_sidebar: true
hide_navtoggle: true
toc: false
folder: design-docs/${folder-name}
---
# Solution - ${solution-name}
## <a id="overview"> Overview
High-level overview; put details in the next section and background in
the 'Background' section (see dev-design-doc-use-cases-template.txt).
Should be understandable by engineers that are not working on Gerrit.
If a solution is a variant of another solution, that other solution
should be linked here.
## <a id="detailed-design"> Detailed Design
How does the overall design work? Details about the algorithms,
storage format, APIs, etc., should be included here.
For the initial review, it is ok for this to lack implementation
details of minor importance.
### <a id="scalability"> Scalability
How does the solution scale?
If applicable, consider:
* data size increase
* traffic increase
* effects on replication across sites (master-replica and master-master)
## <a id="alternatives-considered"> Alternatives Considered
Within the scope of this solution you may need to describe what you did
not do or why simpler approaches don't work. Mention other things to
watch out for (if any).
Do not describe alternative solutions in this section, as each solution
should be described in a separate file.
## <a id="pros-and-cons"> Pros and Cons
Objectively list all points that speak in favor/against this solution.
## <a id="implementation-plan"> Implementation Plan
If known, say who would be willing to drive the implementation.
It is possible to contribute solutions without having resources to do
the implementation. In this case, say so here.
If mentor support is desired, say so here. Also briefly describe any
circumstances that can help with finding a suitable mentor.
## <a id="time-estimation"> Time Estimation
A rough itemized estimation of how much time it takes to implement this
feature. Break down the feature into work items and estimate each item
separately.
If a mentor is assigned, this section must define a maximum time frame
after which the mentorship automatically ends even if the feature isn't
fully done yet.