Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Writing ADRs: Decision Records with the Nygard Template, MADR 4.0 and Y-Statements
A good ADR records not just the decision but the question it answers, the options it was made against, the accepted cost and when to reopen it, and it is never edited once decided. Nygard's five-section template, the sections and front matter of MADR 4.0.0, a rejected decision record, Y-statements, the status lifecycle and a real script that enforces immutability in PRs.
RFCs and Design Docs: Debating Big Decisions in Writing
A decision whose solution is unclear and that affects several teams is first debated in a design doc, with an RFC process with written rules when needed, and its outcome is recorded as a separate, immutable ADR. Using a two-page design doc for adding an outbox to Bookstore's order service: Context and Scope, measurable Goals, real Non-Goals, Alternatives Considered, cross-cutting concerns, the lifecycle and the RFC comment period.