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

ADR vs NFR explained: learn how system quality requirements drive architecture decisions, how ADRs record trade-offs, and why validation stays separate.
Published:
Aleksandar Stajić
Updated: October 8, 2026 at 07:31 PM
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 requirementADR / architecture decision
Primary questionWhat quality, constraint, or operating condition must the system satisfy?What architecturally significant choice did we make, and why?
Typical contentMeasurable target, scope, condition, constraint, acceptance or validation ruleContext, decision, rationale, alternatives, trade-offs, status and consequences
Lifecycle roleA requirement to design for and validateA historical record of a significant decision
What proves it?Measurement, test, analysis, inspection, audit or other validation evidenceThe record proves what was decided, not that the resulting system meets the requirement
When it changesWhen stakeholder need, operating conditions, policy or quality target changesWhen 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 statementMore useful requirement shapeWhy the difference matters
The API must be fastFor workload W, 95% of operation X completes within T millisecondsDefines workload, operation, metric and threshold
The service must be availableService S meets an agreed availability objective over measurement window M, excluding explicitly defined maintenance conditionsMakes availability measurable and defines scope
Tenant data must be secureA request authenticated for tenant A must never retrieve or mutate tenant B data through supported application pathsTurns a vague security goal into an isolation property
The system should scaleThe system supports workload W at concurrency C while meeting latency and error-rate thresholdsConnects scale to measurable service behavior
We need PostgreSQLNot an NFR by itself; state the required persistence qualities or external constraint firstA 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 fieldWhat it preservesWhy it matters
ContextThe problem, forces, requirements, assumptions and environment surrounding the choiceFuture readers can reconstruct why a choice was necessary
DecisionThe choice that became authoritativeSeparates the selected option from discussion
StatusProposed, accepted, rejected, deprecated, superseded, or another controlled statePrevents old decisions from silently remaining active
AlternativesOther viable options consideredShows that the selected solution was not the only imaginable one
Rationale / trade-offsWhy the option was selected and what it gives upMakes architecture reasoning inspectable
ConsequencesExpected positive and negative effects, follow-up work, risksConnects a local choice to system impact
Date / versionWhen the decision became validSupports 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

1
1. State the requirement
Define the quality target, workload, scope, threshold and validation method.
2
2. Identify architectural significance
Determine whether the requirement materially influences structure, technology, deployment, data flow or operating model.
3
3. Evaluate options
Compare alternatives such as indexing, caching, denormalization, asynchronous work, partitioning, or a different query architecture.
4
4. Record the decision
Capture the selected architecture choice, rationale, alternatives, trade-offs, status and consequences in an ADR.
5
5. Implement
Turn the decision into code, infrastructure, configuration and operational behavior.
6
6. Validate
Measure the real system against the original requirement. The test result validates the NFR; the ADR alone does not.

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 sideDecision sideValidation side
One NFR → many ADRsA broad quality target can constrain several architectural boundariesSeveral coordinated decisions may be requiredEvidence may need multiple tests or measurements
Many NFRs → one ADRSeveral quality and constraint drivers can point at the same design problemOne decision may balance several driversEach requirement still needs its own acceptance evidence
ADR without a classic NFRThe driver may be a functional need, policy, ecosystem constraint, cost or delivery conditionThe choice can still be architecturally significantValidate against the actual driver, not an invented NFR
Requirement stable, ADR changesThe target can remain unchangedA better or necessary implementation choice can supersede the old decisionThe 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.

StatementClassificationReason
All tenant-scoped reads must enforce tenant isolationRequirement / security propertyDescribes a property that must hold
Use PostgreSQL Row Level Security for selected tenant-scoped tablesArchitecture decisionChooses a mechanism intended to help satisfy the isolation property
The deployment target must run in an approved EU-operated environmentConstraint / NFR-like operating conditionRestricts where the system may operate
Use provider X in region YArchitecture / deployment decision unless externally mandatedSelects a particular solution inside the allowed boundary
95th-percentile API latency ≤ 300 ms under workload WQuality requirementDefines measurable performance behavior
Introduce a cache for endpoint XArchitecture decisionSelects 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

1
1. Ask whether the requirement changes structure
Would different values force different components, boundaries, data paths or deployment topology?
2
2. Ask whether it constrains major technology choices
Does it eliminate otherwise viable implementation options?
3
3. Ask whether it creates cross-cutting behavior
Does it affect many components, teams, interfaces or lifecycle stages?
4
4. Ask whether it creates a difficult trade-off
Does improving this property materially affect another quality, cost, schedule, complexity or risk?
5
5. Ask whether failure is expensive
Would missing the requirement create material operational, security, regulatory, financial or product impact?
6
6. Record decisions only where the reasoning is worth preserving
Do not create ADRs for every local coding choice; preserve architecturally significant decisions and their rationale.

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

1
Need / business goal
Why the quality or constraint matters.
2
Requirement / NFR
What the system must achieve or respect.
3
Architecture drivers
Which requirements are significant enough to shape the design.
4
Options
Plausible ways to address the driver.
5
ADR
The selected choice, rationale, alternatives, trade-offs and consequences.
6
Implementation
Code, data model, infrastructure, interfaces and operational mechanisms that realize the decision.
7
Validation evidence
Tests, measurements, analysis or audits demonstrating whether the original requirement is actually satisfied.
8
Change / supersession
New evidence or changed requirements can trigger a new ADR while preserving historical reasoning.

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 layerWhat it containsRole in ADR/NFR separation
Product / requirement structureProduct goal, capability, epic, user story, acceptance criteria, technical tasks; requirements can include NFRs and validation methodPreserves what must be achieved and how success will be checked
Decision integrityDecision, reason, alternatives, trade-offs, status, date/versionPreserves why an architecturally significant choice became authoritative
ConfluenceRequirements, architecture, research, decision records, risks, roadmap and supporting sourcesMaintains conceptual and historical Source of Truth
JiraInitiatives/goals, epics, stories, tasks and delivery stateExecutes approved work without becoming the conceptual Source of Truth
Change managementCurrent state → new evidence → proposed change → impact → decisionAllows decisions to evolve without erasing the reasoning trail
End-to-end traceabilityProblem → need → value → product goal → requirement → implementation → validationKeeps 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 modeWhat happensConsequence
Technology disguised as requirementA preferred solution is written as “must use X” without establishing the underlying needAlternatives are never evaluated and architecture becomes prematurely fixed
NFR hidden only inside an ADRThe decision mentions a performance/security target that is absent from the requirements baselineThe target is hard to validate, prioritize or manage independently
ADR treated as proofA documented choice is assumed to mean the requirement is satisfiedArchitecture intent replaces measurement or verification
Vague NFRWords such as fast, scalable, secure or maintainable have no measurable scopeDifferent stakeholders can believe the same requirement means different things
No alternatives recordedThe team records only the selected technologyFuture maintainers cannot reconstruct why another option was rejected
No supersession modelOld ADRs are edited or deleted when the architecture changesHistorical reasoning disappears and stale decisions can remain ambiguous
Every implementation detail becomes an ADRThe repository fills with low-value recordsImportant architecture choices become difficult to find
Backlog becomes architecture SoTJira tasks are treated as the only explanation of the systemDelivery 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

1
1. Is this a required property or external constraint?
If yes, write or reference the requirement before choosing a mechanism.
2
2. Can it be validated?
Define the scope, condition, metric, acceptance rule, analysis method or other evidence needed.
3
3. Is it architecturally significant?
Identify whether the requirement materially shapes structure, technology, data, deployment or cross-cutting trade-offs.
4
4. Are there meaningful alternatives?
Compare viable tactics or architecture options rather than jumping directly to a preferred technology.
5
5. Has a choice become authoritative?
Create or update the ADR with context, decision, rationale, alternatives, trade-offs, status and consequences.
6
6. Is the decision implemented?
Trace the ADR into design, tasks, code, configuration and operations.
7
7. Is the requirement satisfied?
Collect validation evidence against the requirement itself.
8
8. Did conditions change?
Re-evaluate the requirement and, when necessary, supersede the ADR without erasing history.

What ADR and NFR are not

Common category errors

ConceptIt is notReason
NFR / quality requirementA required quality, constraint or operating conditionA technology shopping listRequirements should preserve the need independently from one implementation when possible
ADRA record of an architecturally significant decisionThe complete architecture descriptionArchitecture also needs views, interfaces, models, responsibilities and other documentation
Validation evidenceEvidence that checks whether a requirement is satisfiedThe ADR itselfDocumented intent is different from measured or analyzed system behavior
Backlog itemActionable delivery workA durable substitute for architecture rationaleTask state answers what is being delivered, not necessarily why the architecture exists
ConstraintA condition that restricts the solution spaceAlways an internally chosen architecture decisionSome 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?

No. An NFR states a required quality, constraint, or operating condition. An ADR records an architecturally significant choice made in response to requirements, constraints, risks and trade-offs.

Should every NFR have an ADR?

No. Only requirements that materially influence architecture need architecture-level decisions worth preserving. One NFR can also drive several ADRs, and one ADR can respond to several requirements.

Can “use PostgreSQL” be an NFR?

Only when PostgreSQL is genuinely imposed as an external constraint. Otherwise the underlying need should be expressed first, and selecting PostgreSQL should normally be treated as an architecture decision.

Does an ADR prove that a performance or security requirement is met?

No. An ADR records intent and reasoning. The requirement is validated through appropriate evidence such as testing, measurement, analysis, audit or operational telemetry.

What should an ADR contain?

At minimum, an ADR should make the context and decision clear. Common structures also include status and consequences. Teams can add alternatives, rationale, trade-offs, requirement links, evidence, owners, dates and supersession relationships.

What makes an NFR architecturally significant?

A requirement is architecturally significant when it materially shapes system structure, technology, data flows, deployment, cross-cutting behavior or difficult quality trade-offs, especially when failure carries high business or mission impact.

Should an old ADR be deleted when the architecture changes?

Usually no. A replacement decision should normally supersede the old record so the historical reasoning remains traceable.

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 Engineering

Current 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 Engineering

Draft International Standard currently under development and intended to replace ISO/IEC/IEEE 29148:2018.

ISO/IEC 25010:2023 — Product Quality Model

Current product-quality model with nine quality characteristics used to specify, measure and evaluate ICT and software product quality.

ISO/IEC/IEEE 42010:2022 — Architecture Description

Current architecture-description standard. It specifies architecture-description concepts and conformance requirements without prescribing one recording format, notation, process or tool.

Michael Nygard — Documenting Architecture Decisions

Original 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 Requirements

SEI 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 Qualities

SEI overview connecting non-functional/quality attributes with architecture, scenarios, trade-offs and objective system evaluation.

SEI — Attribute-Driven Design Method Collection

Architecture 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 Collection

Architecture-documentation guidance emphasizing relevant views and the recording of necessary design decisions as part of architecture work.