| --- |
| 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. |