storj/docs/design
2019-08-28 22:47:43 +03:00
..
archive docs/design/archive: moves archive directory (#2885) 2019-08-27 14:59:52 -04:00
images docs/design: Storage Node downtime tracking (#2857) 2019-08-28 21:05:18 +02:00
audit-containment.md adds audit system's containment mode design draft (#1929) 2019-05-14 18:22:08 -04:00
audit-v2.md docs/design: update audit v2 (#2901) 2019-08-28 22:47:43 +03:00
disqualification.md satellite/overlay: rename overlay.Cache to overlay.Service (#2717) 2019-08-06 19:35:59 +03:00
garbage-collection.md pkg/bloomfilter: implementation and benchmark results (#2113) 2019-06-20 12:27:20 +02:00
kademlia-removal.md design/docs: add successful pingback to kademlia removal document (#2837) 2019-08-26 15:34:04 +03:00
link-sharing-service.md Link Sharing service design (#2360) 2019-07-09 09:36:08 -06:00
marketing-offer-program.md Use mail.test as domain in emails (#2224) 2019-06-18 02:28:40 +02:00
metainfo-rpc.md adds metainfo rpc doc (#1957) 2019-07-09 21:44:01 +02:00
mountable-drive.md Mountable Drive design doc (#2016) 2019-05-21 16:16:31 +02:00
node-selection.md nodes db - adds alpha and beta reputation fields (#2215) 2019-06-18 09:45:02 -04:00
notification-system.md Design Doc Notification System (#2101) 2019-06-17 22:31:54 -04:00
password-key-derivation.md Update password based key derivation design doc (#2367) 2019-07-09 00:07:03 -04:00
path-component-encoding.md design doc: path component encoding (#2386) 2019-07-03 19:01:52 +02:00
README.md Rename design-doc-process.md to README.md (#2848) 2019-08-22 11:17:18 +03:00
repair-with-hashes.md Update repair-with-hashes.md (#2756) 2019-08-09 16:34:11 -04:00
satellite-svc-separation.md docs/design: satellite service separation (#2815) 2019-08-28 09:28:53 -07:00
storage-node-automatic-updater.md docs/design: Fix typos & remove not applicable title (#2879) 2019-08-28 15:55:36 +03:00
storage-node-downtime-tracking.md docs/design: Storage Node downtime tracking (#2857) 2019-08-28 21:05:18 +02:00
storage-node-windows-installer.md docs/design: Use WiX toolset directly instead of go-msi for Windows installer (#2851) 2019-08-27 16:06:00 +03:00
storagenode-graceful-exit.md initial design doc for SN graceful exit (#2077) 2019-06-24 10:28:53 -04:00
TEMPLATE.md docs/design: Remove subtitle part not applicable (#2880) 2019-08-28 15:38:08 +03:00
uplink-scopes.md add uplink-contexts design doc (#1959) 2019-05-22 19:49:46 +00:00
value-attribution.md Add attribution report to the satellite CLI (#2288) 2019-06-25 16:58:38 -04:00

Design Document Process

Design documents will be checked in as Markdown files in docs/design folder.

Design documents should have an editor, at least one discussion meeting, and at least two reviewers from the architecture board.

The editor is responsible for:

  • soliciting authors or authoring the document themselves,
  • scheduling discussion meetings,
  • finding reviewers,
  • posting the document in our forum, and
  • getting the document finalized and merged

The editor is also responsible for making a list of epics and tickets after the design document is finalized and merged.

The reviewers are responsible for reviewing the clarity and reasonableness of the document.

The discussion meeting should have at least three people present. Invitees should familiarize with the document prior to the discussion. The reviewers should be present. If there are open problems after the meeting, then the meeting should be repeated.

One of the reviewers must be an architecture owner, currently:

  • Egon (@egonelbre),
  • Kaloyan (@kaloyan-raev),
  • JT (@jtolds),
  • Jens (@littleskunk),
  • unless agreed otherwise

The other reviewer should be someone with significant distributed systems expertise, currently:

  • Paul (@thepaul),
  • Simon (@simongui),
  • Jeff (@zeebo),
  • Matt (@brimstone),
  • unless agreed otherwise.

However, it is expected that there should be feedback from the engineering team, DevOps team, data science team, UX team, QA team, and the community.

Template

The design document uses TEMPLATE.md as a guide. However, it can be modified when necessary.

The template has the following sections:

  • Abstract gives an overview of the design document and what it accomplishes. It does not go into details about the problem.

  • Background gives an overview of the background why this design document exists. It describes the problems the design document tries to solve. It describes the goals of the design.

  • Design contains the solution and its parts. The level of detail should correspond to the level of risk. The more problems a wrong solution would cause, the more detailed should be the description. The design should describe the solution to the degree it is usable by the end-user.

  • Rationale section describes the alternate approaches and trade-offs. It should be clear why the proposed design was chosen among the alternate solutions.

  • Implementation describes the steps to complete this design document. It should contain a rough outline of tasks. If necessary, there can be additional details about the changes to the codebase and process.

  • Open Issues contains open questions that the author did not know how to solve.

Format

The design document is intended to be read by outside of Storj, hence avoid acronyms that aren't common in the general developer community. Prefer simple sentences. Active voice is usually easier to read. Overall, be clear.