Request for Comments
Definition
A Request for Comments (RFC) is a proposal document that solicits feedback on significant changes before they become formal decisions. Unlike an ADR which records a decision already made, an RFC opens a decision for collaborative input.
The term originates from the IETF (Internet Engineering Task Force), where RFCs have defined internet protocols since 1969. Modern software projects—Rust, React, Ember, Python—have adopted RFC processes for significant changes that affect many stakeholders.
Key Characteristics
Proposal-Oriented
RFCs propose; ADRs record. An RFC says “We should consider doing X” while an ADR says “We decided to do X.” The RFC process concludes with either acceptance (spawning ADRs) or rejection.
Collaborative
RFCs are designed for multi-stakeholder input. They include explicit comment periods and revision cycles. The goal is to surface concerns before committing to a direction.
Scope
RFCs typically cover changes that:
- Affect multiple teams or systems
- Require significant migration effort
- Introduce breaking changes
- Establish new architectural patterns
Single-component decisions usually don’t warrant an RFC—a direct ADR suffices.
Relationship to ADRs
| Dimension | RFC | ADR |
|---|---|---|
| Purpose | Propose and gather feedback | Record a decision |
| Timing | Before decision | After decision |
| Mutability | Revised during comment period | Immutable once accepted |
| Output | One or more ADRs | Implementation guidance |
An RFC may spawn multiple ADRs. For example, “RFC: Migrate from Firebase to Supabase” might result in:
- ADR-010: Use Supabase Auth
- ADR-011: Use Supabase Realtime for subscriptions
- ADR-012: Migration strategy for existing users
ASDLC Usage
In ASDLC, RFCs are appropriate for:
- Major architectural pivots (changing database providers, frontend frameworks)
- Cross-cutting changes (new authentication model, API versioning strategy)
- Migration plans (multi-phase transitions that affect multiple features)
For routine architectural decisions within a single feature domain, a direct ADR is sufficient.
Applied in:
- The ADR — Pattern for recording decisions that result from RFCs
- ADR Authoring — Includes RFC-to-ADR workflow
See also:
- Context Engineering — RFCs as context for understanding project direction
References
- Rust RFCs
.
Accessed January 28, 2026.
Rust's RFC process for language and ecosystem changes.
- React RFCs
.
Accessed January 28, 2026.
React's RFC process for significant API and behavior changes.