safebank-fe


Non-Functional Requirements

Clara, the Cloud Architect, worked closely with all developers, particularly Site Reliability Engineers (Leo and Peter) and Security Engineer (Massimo), to ensure that the non-functional requirements were always up to date and aligned with the project’s needs. This collaborative approach ensured that the system was designed to maximize user security and comfort while meeting the highest standards of reliability, performance, and scalability.

Reliability


Performance


Scalability


Monitoring and Alerting


Incident Management


Security


Maintainability


Cost Optimization


NFR to User Story Mapping

NFR Number Non-Functional Requirement Related User Stories Acceptance Criteria
NFR1–NFR5 Ensure reliability and availability of critical services, including failover mechanisms. As an SRE, I want to monitor key SLIs to ensure performance and reliability targets are met. SLIs monitored and alerts configured to ensure uptime >99%. Failover mechanisms tested quarterly.
NFR6–NFR10 Maintain performance standards for transaction speeds, data retrieval, and API error rates. As a user, I want transactions processed quickly without errors. Transactions processed within 2 seconds. Data retrieval under 3 seconds for 95% of cases. API errors below 1%.
NFR11–NFR14 Ensure scalability through auto-scaling and traffic distribution mechanisms. As an infrastructure developer, I want to modularize infrastructure components to support scalability. Horizontal scaling implemented and validated during peak loads. Traffic distributed across regions using Azure Front Door.
NFR15–NFR19 Set up monitoring and alerting tools to track SLIs and automate responses for predictable issues. As a Site Reliability Engineer, I want to create dashboards for real-time SLI monitoring. Dashboards provide real-time and historical metrics. Alerts notify teams within 5 minutes. Automated scaling for predictable load surges tested successfully.
NFR20–NFR22 Establish incident management processes with automated ticketing and response times. As an SRE, I want to define and implement escalation policies for critical alerts. Critical alerts routed to relevant teams within 5 minutes. High-severity incidents resolved in under 30 minutes. Documentation created for all incidents.
NFR23–NFR25 Enhance security with GitHub hardening and secure credential management. As a cybersecurity engineer, I want to securely store sensitive credentials and prevent vulnerabilities. Azure Key Vault configured for secret storage. GitHub advanced security features (CodeQL, push protection) implemented.
NFR26–NFR28 Ensure maintainability with modular infrastructure and updated documentation. As an infrastructure developer, I want Bicep modules for reusability and easy updates. Modularized Bicep components deployed successfully in all environments. Documentation reviewed and updated after system changes.
NFR29–NFR30 Optimize costs by reviewing log retention and scaling policies. As a DevOps engineer, I want to reduce costs while maintaining operational efficiency. Log retention policy adjusted to 90 days. Monitoring resources scaled dynamically during off-peak hours, reducing unnecessary costs.