Skip to main content

RFC / ADR — Making Technical Decisions at Scale

RFC = async alignment on proposals before deciding. ADR = permanent record of the decision and its context after it's made.

When to use RFC

  • Cross-team changes, new patterns, infrastructure shifts — anything that will surprise people later

When to use ADR

  • Every significant technical decision, regardless of who decided or how

Tradeoffs

  • RFC without a decision deadline becomes a discussion forum, not a decision process
  • ADRs are useless if not kept up to date or never linked to from code/docs

RFC Template

# RFC-NNN: [Title]
**Author:** | **Status:** Draft / In Review / Accepted / Rejected | **Deadline:**

## Problem

## Proposed Solution

## Alternatives Considered

## Tradeoffs

## Open Questions

ADR Template

# ADR-NNN: [Title]
**Date:** | **Status:** Accepted / Superseded by ADR-NNN

## Context

## Decision

## Consequences (positive and negative)

Gotcha: An RFC without a deadline is a proposal that will never be decided. Set a decision date when you open it. "We'll decide by Friday" is more powerful than any amount of async discussion.