ADR vs NFR: Architecture Decisions and System Quality Are Not the Same Thing

An non-functional requirement (NFR) describes a quality, constraint, or operating condition the system is expected to satisfy. An architecture decision record (ADR) records an architecturally significant choice made in response to requirements, constraints, risks, and trade-offs. They are connected, but they are not interchangeable: an NFR states what must be true; an ADR explains what was decided, why, and with what consequences.
What is the difference between an NFR and an ADR?
The simplest distinction is grammatical. A requirement describes a condition the system must satisfy. A decision record describes a choice the team made.
For example, “The API must return 95% of read requests within 300 ms under the agreed reference load” is a quality requirement. “Use a read-through cache for this workload because the measured database-only path cannot meet the latency target without unacceptable cost” is an architecture decision.
The first statement remains valid even if the implementation changes. The second statement can later be superseded by another decision if the workload, technology, cost model, or evidence changes.
NFR and ADR answer different questions
| NFR / quality requirement | ADR / architecture decision | |
|---|---|---|
| Primary question | What quality, constraint, or operating condition must the system satisfy? | What architecturally significant choice did we make, and why? |
| Typical content | Measurable target, scope, condition, constraint, acceptance or validation rule | Context, decision, rationale, alternatives, trade-offs, status and consequences |
| Lifecycle role | A requirement to design for and validate | A historical record of a significant decision |
| What proves it? | Measurement, test, analysis, inspection, audit or other validation evidence | The record proves what was decided, not that the resulting system meets the requirement |
| When it changes | When stakeholder need, operating conditions, policy or quality target changes | When the decision is replaced, rejected, deprecated, or superseded |
What is an NFR in precise architectural terms?
“Non-functional requirement” is a convenient industry label, but it can hide several different kinds of statements. In architecture work, the useful distinction is between functional behavior, quality requirements, and constraints.
ISO/IEC 25010:2023 provides a product-quality model with nine characteristics and subcharacteristics that can be used when specifying and evaluating ICT and software product quality. SEI architecture work similarly treats quality attribute requirements as major drivers of software architecture.
A useful NFR is therefore not “the system should be fast” or “the platform must be secure.” Those statements name aspirations. An architecture-driving requirement should make the expected property testable enough that design alternatives and later evidence can be evaluated against it.
| Weak statement | More useful requirement shape | Why the difference matters |
|---|---|---|
| The API must be fast | For workload W, 95% of operation X completes within T milliseconds | Defines workload, operation, metric and threshold |
| The service must be available | Service S meets an agreed availability objective over measurement window M, excluding explicitly defined maintenance conditions | Makes availability measurable and defines scope |
| Tenant data must be secure | A request authenticated for tenant A must never retrieve or mutate tenant B data through supported application paths | Turns a vague security goal into an isolation property |
| The system should scale | The system supports workload W at concurrency C while meeting latency and error-rate thresholds | Connects scale to measurable service behavior |
| We need PostgreSQL | Not an NFR by itself; state the required persistence qualities or external constraint first | A technology choice is normally a solution, not the requirement it is meant to satisfy |
What is an Architecture Decision Record?
An Architecture Decision Record is a compact record of an important architecture decision. Michael Nygard’s original ADR formulation emphasizes the context, the decision, its status, and the resulting consequences.
The important object is the decision, not the template. Different teams use different ADR formats. A richer record can also preserve alternatives, decision criteria, trade-offs, evidence, links to requirements, and the date or version from which the decision applies.
ISO/IEC/IEEE 42010:2022 is broader than ADR practice: it specifies requirements for architecture descriptions and their concepts, while explicitly not prescribing one process, notation, tool, format, or medium for recording an architecture description. An ADR is therefore a practical decision-recording technique, not a format mandated by ISO 42010.
| ADR field | What it preserves | Why it matters |
|---|---|---|
| Context | The problem, forces, requirements, assumptions and environment surrounding the choice | Future readers can reconstruct why a choice was necessary |
| Decision | The choice that became authoritative | Separates the selected option from discussion |
| Status | Proposed, accepted, rejected, deprecated, superseded, or another controlled state | Prevents old decisions from silently remaining active |
| Alternatives | Other viable options considered | Shows that the selected solution was not the only imaginable one |
| Rationale / trade-offs | Why the option was selected and what it gives up | Makes architecture reasoning inspectable |
| Consequences | Expected positive and negative effects, follow-up work, risks | Connects a local choice to system impact |
| Date / version | When the decision became valid | Supports historical traceability and later supersession |
The simplest example: latency requirement → architecture decision
Suppose a product owner and engineering team agree that a search endpoint must return the first page of results within 400 ms at the 95th percentile under a defined reference workload.
That target is not an ADR. It is a quality requirement. Architecture work begins by asking what design can satisfy it under the system’s other constraints.
From requirement to evidence
NFRs and ADRs usually have a many-to-many relationship
One quality requirement can drive several architecture decisions. A tenant-isolation requirement, for example, can influence identity propagation, database scoping, background-job design, cache keys, audit logging, and administrative tooling.
One architecture decision can also respond to several requirements at once. Choosing an asynchronous processing boundary might improve responsiveness and failure isolation while introducing consistency, complexity, observability, and operational trade-offs.
Why the relationship is not one-to-one
| Requirement side | Decision side | Validation side | |
|---|---|---|---|
| One NFR → many ADRs | A broad quality target can constrain several architectural boundaries | Several coordinated decisions may be required | Evidence may need multiple tests or measurements |
| Many NFRs → one ADR | Several quality and constraint drivers can point at the same design problem | One decision may balance several drivers | Each requirement still needs its own acceptance evidence |
| ADR without a classic NFR | The driver may be a functional need, policy, ecosystem constraint, cost or delivery condition | The choice can still be architecturally significant | Validate against the actual driver, not an invented NFR |
| Requirement stable, ADR changes | The target can remain unchanged | A better or necessary implementation choice can supersede the old decision | The new architecture must still be checked against the same target |
A technology choice is not automatically a requirement
A recurring architecture error is to write a preferred technology into the requirements layer and then treat the resulting design as inevitable.
“The system must use PostgreSQL” can be a legitimate constraint if a contract, platform policy, compatibility requirement, licensing rule, organizational standard, or existing operational boundary actually mandates PostgreSQL. But if the real need is transactional consistency, structured querying, operational familiarity, or a specific recovery objective, the requirement should state that need and the technology selection should be recorded as a decision.
| Statement | Classification | Reason |
|---|---|---|
| All tenant-scoped reads must enforce tenant isolation | Requirement / security property | Describes a property that must hold |
| Use PostgreSQL Row Level Security for selected tenant-scoped tables | Architecture decision | Chooses a mechanism intended to help satisfy the isolation property |
| The deployment target must run in an approved EU-operated environment | Constraint / NFR-like operating condition | Restricts where the system may operate |
| Use provider X in region Y | Architecture / deployment decision unless externally mandated | Selects a particular solution inside the allowed boundary |
| 95th-percentile API latency ≤ 300 ms under workload W | Quality requirement | Defines measurable performance behavior |
| Introduce a cache for endpoint X | Architecture decision | Selects a tactic intended to improve the measured behavior |
An ADR is not proof that an NFR has been satisfied
Decision documentation and system validation answer different questions. An ADR can show that performance, security, resilience, or maintainability were considered. It cannot by itself demonstrate that the delivered system actually achieves those properties.
The proof must come from the validation method appropriate to the requirement: benchmark, load test, failure test, security test, architecture analysis, audit, inspection, operational telemetry, recovery exercise, user study, or another form of evidence.
When does an NFR become architecturally significant?
Not every non-functional requirement deserves an architecture decision. The important subset is the requirements that materially shape the architecture or force trade-offs across the system.
SEI literature uses the concept of architecturally significant requirements for requirements with far-reaching architectural effect. Quality attributes such as performance, reliability, security, and modifiability are frequent sources of such drivers, especially when they carry high business or mission value.
Architectural-significance test
A stronger architecture model: requirement → decision → implementation → validation
The most useful connection between NFRs and ADRs is traceability. A requirement should be able to point to the architecture decisions that address it; an ADR should identify the drivers it responds to; implementation work should realize the decision; validation should return to the original requirement.
Architecture traceability chain
Implementation evidence: how I separate requirements and decisions in SenseFlow
In SenseFlow, the project Source of Truth explicitly places non-functional requirements inside the requirements structure together with dependencies, risks, assumptions, acceptance criteria, and a validation method. The documentation model separately defines decision integrity for significant decisions.
For significant SenseFlow decisions, the recorded fields are Decision, Reason, Alternatives, Trade-offs, Status, and Date / Version. Major architecture and product decisions are intended to remain historically traceable rather than being overwritten when the project evolves.
SenseFlow also assigns different operational roles to Confluence and Jira. Confluence is the structured knowledge and decision environment; Jira manages actionable delivery work. Major Jira Epics should link back to the relevant product or requirements documentation. This preserves the chain from product intent through requirements and decisions into implementation rather than turning the backlog into the architecture Source of Truth.
| SenseFlow layer | What it contains | Role in ADR/NFR separation |
|---|---|---|
| Product / requirement structure | Product goal, capability, epic, user story, acceptance criteria, technical tasks; requirements can include NFRs and validation method | Preserves what must be achieved and how success will be checked |
| Decision integrity | Decision, reason, alternatives, trade-offs, status, date/version | Preserves why an architecturally significant choice became authoritative |
| Confluence | Requirements, architecture, research, decision records, risks, roadmap and supporting sources | Maintains conceptual and historical Source of Truth |
| Jira | Initiatives/goals, epics, stories, tasks and delivery state | Executes approved work without becoming the conceptual Source of Truth |
| Change management | Current state → new evidence → proposed change → impact → decision | Allows decisions to evolve without erasing the reasoning trail |
| End-to-end traceability | Problem → need → value → product goal → requirement → implementation → validation | Keeps decision documentation connected to the actual product and evidence lifecycle |
Enterprise project context: requirements should precede architecture choices
The same separation is useful in enterprise-oriented project work. Architecture decisions made before requirements, risks, constraints, and acceptance conditions are sufficiently understood can turn preferences into false necessities.
For Enterprise Aaasaasa 0.1, the relevant lesson is methodological rather than a claim about one particular ADR: requirements, architecture, validation, milestones, risk management, and acceptance belong to a connected delivery system. An architecture choice should remain traceable to the requirement or constraint it is intended to address.
Common failure modes when ADRs and NFRs are mixed
| Failure mode | What happens | Consequence |
|---|---|---|
| Technology disguised as requirement | A preferred solution is written as “must use X” without establishing the underlying need | Alternatives are never evaluated and architecture becomes prematurely fixed |
| NFR hidden only inside an ADR | The decision mentions a performance/security target that is absent from the requirements baseline | The target is hard to validate, prioritize or manage independently |
| ADR treated as proof | A documented choice is assumed to mean the requirement is satisfied | Architecture intent replaces measurement or verification |
| Vague NFR | Words such as fast, scalable, secure or maintainable have no measurable scope | Different stakeholders can believe the same requirement means different things |
| No alternatives recorded | The team records only the selected technology | Future maintainers cannot reconstruct why another option was rejected |
| No supersession model | Old ADRs are edited or deleted when the architecture changes | Historical reasoning disappears and stale decisions can remain ambiguous |
| Every implementation detail becomes an ADR | The repository fills with low-value records | Important architecture choices become difficult to find |
| Backlog becomes architecture SoT | Jira tasks are treated as the only explanation of the system | Delivery state survives, but architectural rationale and quality drivers are lost |
The ADR–NFR decision framework
When a team encounters a new architecture concern, the following sequence helps determine what belongs in requirements, what belongs in an ADR, and what belongs in evidence.
ADR–NFR classification test
What ADR and NFR are not
Common category errors
| Concept | It is not | Reason | |
|---|---|---|---|
| NFR / quality requirement | A required quality, constraint or operating condition | A technology shopping list | Requirements should preserve the need independently from one implementation when possible |
| ADR | A record of an architecturally significant decision | The complete architecture description | Architecture also needs views, interfaces, models, responsibilities and other documentation |
| Validation evidence | Evidence that checks whether a requirement is satisfied | The ADR itself | Documented intent is different from measured or analyzed system behavior |
| Backlog item | Actionable delivery work | A durable substitute for architecture rationale | Task state answers what is being delivered, not necessarily why the architecture exists |
| Constraint | A condition that restricts the solution space | Always an internally chosen architecture decision | Some constraints come from regulation, contracts, existing platforms or organizational boundaries |
What would change this answer?
The terminology can evolve. ISO/IEC/IEEE 29148:2018 remains the current published requirements-engineering standard as of 8 October 2026, but ISO lists a Draft International Standard intended to replace it. If the new edition changes relevant terminology or requirements guidance, the version-specific references in this article should be updated.
ADR templates can also evolve without changing the central distinction. Michael Nygard’s minimal template, MADR, organization-specific templates, architecture knowledge tools, or structured decision databases can all record decisions. The durable question is whether the record preserves enough context and rationale to understand an architecturally significant choice.
The distinction would only collapse if an organization deliberately chose a combined artifact that stores both requirement and decision data in one document. Even then, the semantic roles remain different: one field states the required outcome or constraint; another records the chosen response.
Limitations
This article uses NFR as practical shorthand. Some engineering methods prefer terms such as quality attribute requirement, quality requirement, system quality, constraint, service-level objective, or architecturally significant requirement. Those terms are not perfectly interchangeable, and project terminology should be explicit.
Not every requirement can be reduced to a single numeric threshold. Security, safety, maintainability, interoperability, usability, explainability, portability, and governance can require combinations of scenarios, structural rules, analyses, process controls, and qualitative evidence. “Measurable” should mean verifiable enough for the decision, not artificially numeric.
Not every architecture decision needs a formal ADR. The documentation cost should be proportional to architectural significance, longevity, uncertainty, trade-off complexity, and the cost of losing the rationale.
Conclusion
ADR and NFR belong to different layers of architecture work. The NFR defines a quality target, constraint, or operating condition. The ADR records a significant architectural response to one or more drivers.
Keeping those layers separate makes architecture easier to reason about. Requirements can be validated independently of technology. Decisions can be superseded without rewriting history. Alternatives and trade-offs remain visible. Delivery work can be traced back to architectural intent. Evidence can show whether the resulting system actually satisfies the requirement.
The strongest chain is therefore not “NFR → ADR → done.” It is need → requirement → architectural drivers → options → decision → implementation → validation → change. That chain turns architecture documentation from static paperwork into a testable record of why the system has the shape it has.
FAQ
ADR vs NFR
Is an ADR a non-functional requirement?
Should every NFR have an ADR?
Can “use PostgreSQL” be an NFR?
Does an ADR prove that a performance or security requirement is met?
What should an ADR contain?
What makes an NFR architecturally significant?
Should an old ADR be deleted when the architecture changes?
Glossary
Core architecture terms
- NFR
- Non-functional requirement: practical shorthand for a required system quality, constraint, or operating condition; exact terminology varies by method and standard.
- Quality attribute requirement
- A requirement describing a quality property the system is expected to exhibit under defined conditions, such as performance, availability, security, reliability or modifiability.
- Architecture Decision Record (ADR)
- A durable record of an architecturally significant decision and enough context to understand why the choice was made and what consequences follow.
- Architecturally Significant Requirement (ASR)
- A requirement with sufficiently far-reaching architectural impact that it materially influences the system design.
- Constraint
- A condition that restricts the solution space, including external policy, regulation, platform, compatibility, contractual or organizational boundaries.
- Trade-off
- A design relationship in which improving one objective, property or cost dimension can worsen another.
- Validation
- Evidence-producing work used to determine whether the implemented system satisfies the stated requirement under the relevant conditions.
- Superseded ADR
- A historical decision record that has been replaced by a newer authoritative decision while remaining available for traceability.
Primary sources and implementation evidence
This article separates current standards from project implementation evidence. ISO/IEC/IEEE 29148:2018 remains current as of 8 October 2026 but is marked for revision; ISO/IEC 25010:2023 and ISO/IEC/IEEE 42010:2022 are current published editions. SenseFlow is original project evidence for the traceability and decision-integrity model described above.
ISO/IEC/IEEE 29148:2018 — Requirements EngineeringCurrent published requirements-engineering standard. ISO states that the 2018 edition was reviewed and confirmed in 2024 and is expected to be replaced by the DIS now under development.
ISO/IEC/IEEE DIS 29148 — Requirements EngineeringDraft International Standard currently under development and intended to replace ISO/IEC/IEEE 29148:2018.
ISO/IEC 25010:2023 — Product Quality ModelCurrent product-quality model with nine quality characteristics used to specify, measure and evaluate ICT and software product quality.
ISO/IEC/IEEE 42010:2022 — Architecture DescriptionCurrent architecture-description standard. It specifies architecture-description concepts and conformance requirements without prescribing one recording format, notation, process or tool.
Michael Nygard — Documenting Architecture DecisionsOriginal influential ADR article describing lightweight records centered on context, decision, status and consequences, with superseded decisions retained for historical understanding.
SEI — Relating Business Goals to Architecturally Significant RequirementsSEI report explaining how quality attribute requirements and business goals drive software architecture and why architecturally significant requirements need explicit elicitation.
SEI — Defining Non-Functional System QualitiesSEI overview connecting non-functional/quality attributes with architecture, scenarios, trade-offs and objective system evaluation.
SEI — Attribute-Driven Design Method CollectionArchitecture design method based on functional requirements, quality attribute requirements and constraints, with architectural tactics and patterns selected to satisfy quality scenarios.
SEI — Views and Beyond CollectionArchitecture-documentation guidance emphasizing relevant views and the recording of necessary design decisions as part of architecture work.
Related Articles

ZBT Z8102AX Dual-SIM Failover: What Works, What Is Missing and What Needs Better Firmware
The ZBT Z8102AX is a dual-SIM 5G OpenWrt router, but dual-SIM hardware alone is not the same as intelligent failover. The router recognizes the SIM and connects successfully, but automatic switching, modem recovery, signal-based decisions and clean failover logic still need deeper testing.

Ultimate Guide to Acceptance Criteria for LLM Adoption in Enterprise Playbooks
Master the art of defining precise acceptance criteria to ensure successful LLM integration in your enterprise environment. This comprehensive guide provides actionable frameworks, examples, and best practices tailored for playbook-driven adoption.

Generative AI Explained: Models, Retrieval, Tools and Applications Are Not the Same Thing
Generative AI is more than a model. Learn how models, retrieval, tools, context, runtimes and applications fit together in production AI systems.

Mastering the SEO Workflow: Essential Optimization Strategies for Organic Growth
A structured SEO workflow is crucial for sustainable organic growth. Learn the ten foundational strategies, from keyword research and technical optimization to content quality and performance analysis.