Part 1 · 1 chapters · ~8 min

RFCs and Design Review

When a change needs an RFC, a template that forces trade-offs, early readers, named required reviewers, time-boxed review, design review meetings that resolve open questions, decision rights, disagree-and-commit, ADRs, and reviewing others' designs well.

2

Writing it down first

code
# RFC-212: Move payout status updates from polling to webhooks
Status: In review · Author: … · Approver: … · Required reviewers: security, ledger, mobile
## Problem        Polling rails every 30 s costs $2.1k/month and delays status by up to 30 s.
## Constraints    Rails differ: 3 support webhooks, 2 do not. Must not lose a status update.
## Options        A) keep polling  B) webhooks + polling fallback  C) webhooks only
## Proposal       B, with signature verification and a reconciliation job (Ledgers P6).
## Risks          Forged webhooks (mitigation: HMAC + IP allow-list); missed webhooks (fallback poll).
## Rollout        Per rail behind a flag; compare webhook vs polled status for 2 weeks.
## Open questions Retention of raw webhook payloads? (needs data protection input)
needs an RFCdoes not
new service, new datastore, new languageinternal refactor inside one service
public or cross-team API changesbug fixes
anything touching money movement, auth or personal datadependency upgrades with no behaviour change
migrations affecting other teamsexperiments behind a flag with an end date

Reviewing well: ask about failure modes, rollout and rollback, ownership and cost; separate blocking concerns from preferences, and say which is which.

AN RFC FROM DRAFT TO DECISION
write, review, decide, record
draftproblem, options, proposal
swipe the figure sideways, or tap expand for full screen
1/4
draft
Start with the problem and constraints, then options with trade-offs, then the proposal. A reader should be able to disagree with the proposal using only the document.
problem before solutionoptions with trade-offs