gerrit/Documentation/dev-design-doc-solution-template.md
Han-Wen Nienhuys 348a6030c7 Rename "slave" to "replica" in documentation and command-line
Per
https://en.wikipedia.org/wiki/Master/slave_(technology)#Terminology_concerns
the use "slave" is considered offsensive in some circles.

For compatibility reasons, the "container.slave" property is
maintained, and the --slave flag is an alias for --replica.

Change-Id: If57df22705dac9450c1cf9900f051d9123d7dd2c
2019-09-26 23:19:53 +02:00

2.2 KiB

title sidebar permalink hide_sidebar hide_navtoggle toc folder
Design Doc - ${title} - Solution - ${solution-name} gerritdoc_sidebar design-doc-${folder-name}-solution-${solution-name}.html true true false design-docs/${folder-name}

Solution - ${solution-name}

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.

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.

Scalability

How does the solution scale?

If applicable, consider:

  • data size increase
  • traffic increase
  • effects on replication across sites (master-replica and master-master)

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.

Pros and Cons

Objectively list all points that speak in favor/against this solution.

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.

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.