Skip to content

Request for comments

A request for comments (RFC) proposes a significant change and asks the people it affects for their views before anyone commits to it. Use one for a change that crosses teams or sites, changes a shared interface or process, or costs enough that a wrong call would hurt.

An RFC is a discussion and an architecture decision record is its result. When the RFC closes, the sponsor records the outcome below, and each decision it produced gets its own ADR.

  • Set a comment period, usually one to two weeks, and keep to it.
  • Name a sponsor who will make the call at the end, so the RFC does not stay open for ever.
  • Keep the problem statement separate from the proposal. Reviewers often agree on one and not the other.

Template

---
id: RFC-0000
title: Short title
status: draft            # draft | in-review | accepted | rejected | withdrawn
author:
sponsor:                 # who decides when the comment period ends
affected: [teams or sites]
comment-period-ends: YYYY-MM-DD
decision-date: YYYY-MM-DD
---

# RFC-0000: Short title

## Summary

Two or three sentences: what you propose and why.

## Problem

What problem are we solving, for whom, and what does it cost us today?

## Goals and non-goals

- Goals:
- Non-goals:

## Proposal

The design in enough detail for reviewers to judge it: interfaces,
data, behaviour, and diagrams where they help.

## Alternatives considered

Each alternative, and why it is not the proposal. Include doing nothing.

## Impact

Who and what it affects: teams, sites, products, cost, schedule.

## Migration

How we get from here to there, and how we roll back if it goes wrong.

## Risks

What could go wrong, and how we reduce each risk.

## Open questions

- Questions the author wants reviewers to answer.

## Outcome

Completed by the sponsor at the end of the comment period.

- Decision: accepted | rejected | withdrawn
- Reason:
- Objections not resolved:
- Resulting ADRs and guideline changes:

## Change log

- YYYY-MM-DD: First draft.