Non-Functional Requirements (NFRs) Framework for Software Systems - Best Practice: Consider Scalability, Elasticity, and Capacity Non-Functional Requirements (NFRs)
Non-Functional Requirements (NFRs) Framework for Software Systems
Chapter 17. Best Practice: Consider Scalability, Elasticity, and Capacity Non-Functional Requirements (NFRs)
Overview
Scalability, Elasticity, and Capacity Non-Functional Requirements (NFRs) define how a software system must handle growth, bursts, concurrency, data volume, workload variation, resource limits, and changing demand. These requirements should describe expected growth, maximum expected load, resource headroom, scaling approach, forecast assumptions, monitoring, and evidence expectations.
Scalability focuses on handling increased demand. Elasticity focuses on dynamically adding or reducing capacity as demand changes. Capacity focuses on whether the system has enough resources to satisfy current and expected demand. Together, these NFRs help prevent avoidable outages, slowdowns, cost waste, and late infrastructure redesign.
Best Practice: Define user, transaction, and data growth non-functional requirements
Description
User, transaction, and data growth NFRs define the expected growth in users, sessions, transactions, records, files, events, messages, storage, queries, reports, and integrations over time. These requirements should specify planning horizons, growth assumptions, peak periods, data-retention effects, and validation expectations.
Benefits
Growth requirements help teams design systems that can scale with business demand instead of becoming constrained by early design assumptions. They also support roadmap planning, capacity forecasting, cost planning, and performance testing.
Example non-functional requirements
- The software system shall support a 50% annual increase in active users for the next three years without requiring major application architecture redesign.
Validation method: Validate through capacity modeling, architecture review, and performance testing against projected user-volume scenarios.
Example validation evidence: Capacity model, growth assumptions, architecture review record, performance test report, and roadmap review approval.
- The transaction store shall support five years of projected transaction growth while maintaining approved query performance targets for operational queries.
Validation method: Validate through data-volume testing, query performance testing, index review, archival policy review, and production growth trend analysis.
Example validation evidence: Data-volume test report, query performance report, data growth forecast, index review notes, archival design, and database monitoring evidence.
Related stakeholders
Typical stakeholders include product owners, business owners, data owners, architects, database teams, platform engineers, SRE teams, operations teams, finance stakeholders, and capacity planners.
Related lifecycle phases
Growth NFRs are defined during product planning, requirements, architecture, data design, and capacity planning; validated during performance testing, volume testing, roadmap review, production monitoring, and recurring capacity review.
Best Practice: Define horizontal and vertical scaling non-functional requirements
Description
Horizontal and vertical scaling NFRs define how a system increases capacity by adding more instances, nodes, partitions, workers, pods, queues, shards, or resources, or by increasing compute, memory, storage, or network capacity on existing resources. These requirements should clarify which scaling methods are supported, when they are used, and their operational limits.
Benefits
Scaling requirements guide architecture and platform decisions. They also help teams avoid systems that technically scale in one dimension while failing in another, such as database constraints, session-state limitations, queue bottlenecks, or licensing limits.
Example non-functional requirements
- The application tier shall support horizontal scaling across multiple instances without requiring user session affinity for standard authenticated user workflows.
Validation method: Validate through multi-instance deployment testing, session behavior testing, load balancing tests, and failover testing.
Example validation evidence: Deployment topology, load balancing configuration, session test results, failover test results, and architecture approval.
- The database tier shall document vertical scaling limits, storage limits, connection limits, and approved mitigation options before production release.
Validation method: Validate through database capacity review, configuration inspection, load testing, and architecture review of scaling constraints and mitigation plans.
Example validation evidence: Database capacity assessment, configuration evidence, load test report, mitigation plan, and architecture review record.
Related stakeholders
Typical stakeholders include solution architects, application architects, database administrators, platform engineers, cloud engineers, developers, QA performance testers, SRE teams, and operations teams.
Related lifecycle phases
Horizontal and vertical scaling NFRs are defined during architecture, platform design, and data design; validated during environment build, load testing, capacity testing, release readiness, and production monitoring.
Best Practice: Define elasticity and burst-handling non-functional requirements
Description
Elasticity and burst-handling NFRs define how a system automatically or operationally responds to short-term demand spikes, sudden workload changes, seasonal peaks, campaign traffic, batch surges, incident-driven load, or unexpected growth. These requirements should specify scale-out triggers, scale-in behavior, warm-up time, maximum burst capacity, cost controls, and user impact.
Benefits
Elasticity requirements help teams design systems that can handle variable demand without permanently over-provisioning resources. They also support better user experience, cost efficiency, and operational stability during peak events.
Example non-functional requirements
- The application platform shall automatically add processing capacity when average CPU utilization exceeds the approved threshold for the approved evaluation period during production operating hours.
Validation method: Validate through autoscaling tests that simulate increasing load and verify scale-out trigger, scale-out time, service behavior, monitoring, and cost visibility.
Example validation evidence: Autoscaling policy, load test report, scaling event logs, infrastructure metrics, application performance dashboard, and platform review approval.
- The message processing service shall absorb a burst of 250,000 messages within one hour and return queue depth to normal operating range within the approved recovery window.
Validation method: Validate through burst-load testing using representative messages and verify queue depth, processing rate, error rate, resource utilization, and recovery time.
Example validation evidence: Burst-load test report, queue metrics, processing dashboard, error report, resource utilization dashboard, and operations signoff.
Related stakeholders
Typical stakeholders include platform engineers, cloud engineers, SRE teams, operations teams, architects, developers, product owners, finance stakeholders, and capacity planners.
Related lifecycle phases
Elasticity and burst-handling NFRs are defined during architecture, platform design, capacity planning, and cost planning; validated during load testing, burst testing, autoscaling tests, production peak monitoring, and cost review.
Best Practice: Define capacity headroom non-functional requirements
Description
Capacity headroom NFRs define the reserve capacity required above normal demand to absorb expected variation, short-term spikes, operational retries, failover traffic, maintenance events, and unexpected increases. These requirements should define which resources require headroom, how headroom is measured, and when corrective action is required.
Benefits
Capacity headroom requirements reduce the risk that systems operate too close to resource limits. They also provide operators with time to respond before users experience outages, degraded performance, or failed transactions.
Example non-functional requirements
- Production compute resources for critical services shall maintain at least 25% available capacity under normal peak-load conditions unless an approved exception exists.
Validation method: Validate through capacity monitoring, peak-load analysis, and monthly service review against approved headroom targets.
Example validation evidence: Capacity dashboard, peak-load report, service review minutes, exception record if applicable, and remediation backlog.
- Critical queues shall maintain enough processing headroom to recover from a one-hour upstream outage without exceeding the approved downstream recovery window.
Validation method: Validate through queue backlog simulation and verify processing rate, recovery time, downstream impact, and alerting behavior.
Example validation evidence: Queue simulation report, backlog metrics, recovery-time evidence, downstream monitoring, alert records, and operations approval.
Related stakeholders
Typical stakeholders include SRE teams, platform engineers, capacity planners, operations teams, architects, finance stakeholders, product owners, and business continuity stakeholders.
Related lifecycle phases
Capacity headroom NFRs are defined during capacity planning, architecture, and operations planning; validated during performance testing, load testing, failover testing, production monitoring, service reviews, and capacity reviews.
Best Practice: Define capacity forecasting and capacity monitoring non-functional requirements
Description
Capacity forecasting and monitoring NFRs define how teams measure current utilization, forecast future demand, detect capacity risk, report trends, trigger action, and govern capacity decisions. These requirements should identify indicators, thresholds, forecast horizons, review frequency, dashboards, alerts, owners, and evidence sources.
Benefits
Capacity forecasting and monitoring requirements help organizations avoid surprise resource exhaustion, emergency scaling, unnecessary cost growth, and late remediation. They also provide measurable evidence for planning, investment, and governance decisions.
Example non-functional requirements
- The software system shall provide monthly capacity trend reporting for critical compute, memory, storage, network, database, queue, and integration resources.
Validation method: Validate by reviewing monthly capacity reports and confirming that all critical resources are included with trend, threshold, and action indicators.
Example validation evidence: Monthly capacity report, dashboard screenshots, resource inventory, threshold definitions, action register, and service review record.
- Capacity monitoring shall alert the responsible operations team when approved utilization thresholds are exceeded or projected to be exceeded within the approved forecast horizon.
Validation method: Validate through alert configuration review, threshold simulation, forecast review, and alert delivery testing.
Example validation evidence: Alert configuration, threshold test results, forecast report, notification logs, incident or action records, and operations signoff.
Related stakeholders
Typical stakeholders include operations teams, SRE teams, platform engineers, database teams, capacity planners, finance stakeholders, product owners, architects, and governance stakeholders.
Related lifecycle phases
Capacity forecasting and monitoring NFRs are defined during operations planning and platform design; validated during monitoring setup, alert testing, service review, capacity review, financial review, and production trend analysis.
Best Practice: Define scalability, elasticity, and capacity validation and evidence non-functional requirements
Description
Scalability, elasticity, and capacity validation and evidence NFRs define how growth, scaling, burst handling, headroom, and capacity assumptions are proven. Evidence may include capacity models, load test results, autoscaling logs, monitoring dashboards, utilization reports, cost reports, architecture reviews, and approved exceptions.
Benefits
Validation requirements make scalability and capacity claims testable and governable. They also help teams avoid relying on undocumented assumptions about future demand, platform scalability, or cloud elasticity.
Example non-functional requirements
- Each critical scalability NFR shall include growth assumptions, validation scenario, validation environment, evidence source, responsible owner, and approval stakeholder.
Validation method: Validate through requirements review, capacity planning review, and release readiness review to confirm required validation attributes and evidence are complete.
Example validation evidence: Scalability NFR traceability matrix, capacity model, load test report, monitoring dashboard, owner assignment, and approval record.
- Capacity evidence for critical production services shall be reviewed at least monthly and shall identify threshold breaches, forecast risks, exceptions, and corrective actions.
Validation method: Validate by sampling monthly service reviews and confirming that capacity evidence, forecast risks, and actions are documented and tracked.
Example validation evidence: Monthly capacity report, service review minutes, threshold breach records, corrective-action backlog, exception records, and governance review evidence.
Related stakeholders
Typical stakeholders include product owners, architects, platform engineers, SRE teams, operations teams, database teams, finance stakeholders, capacity planners, risk stakeholders, and governance teams.
Related lifecycle phases
Scalability and capacity validation NFRs are defined during requirements, architecture, test planning, and operations planning; validated during load testing, autoscaling tests, release readiness, production monitoring, service-level review, and capacity governance.
How to cite this page
When referencing this page in academic work, internal standards, or external publications, include the page title, IF4IT as publisher, the URL, and your access date.
Example (informal web citation):
International Foundation for Information Technology (IF4IT). Best Practice: Consider Scalability, Elasticity, and Capacity Non-Functional Requirements (NFRs) | Non-Functional Requirements (NFRs) Framework for Software Systems. https://if4it.org/best-practices/non-functional-requirements-nfrs-framework-for-software-systems/best-practice-consider-scalability-elasticity-and-capacity-non-functional-requirements-nfrs/ (accessed 2026-06-23).
See About Us for content governance and site-wide citation guidance.
Copyright for the International Foundation for Information Technology (IF4IT): 2008 - Present
Legal Disclaimers