Skip to content

Non-Functional Requirements (NFRs)

Non-Functional Requirements (NFRs)

Overview

This specification details the non-functional requirements (NFRs) for performance, security, availability, data integrity, and compliance across the Learnille platform.


⚡ 1. Performance Requirements

  • API Response Time: 95% of standard CRUD API responses must be delivered in < 200ms. Complex analytics or search queries must complete in < 500ms.
  • Database Query Latency: PostgreSQL indexing must keep single-entity lookups under < 10ms.
  • Video Delivery: Video content stored on MinIO/S3 must support progressive loading and HLS chunk streaming without buffering on 3G+ networks.
  • Concurrent Users: The backend system must support at least 10,000 concurrent active socket connections via Soketi / InstantDB without connection drops.

🔒 2. Security & Data Protection

  • Authentication: JWT access tokens signed via RS256 / HS256 with short expiry (15m) and secure HTTP-only refresh tokens.
  • Authorization: All endpoints protected via NestJS JwtAuthGuard and role-based guards (CASL / RBAC).
  • Data Encryption: All data in transit must be encrypted via TLS 1.3. Sensitive fields (OTP, bank account numbers, tokens) encrypted at rest using AES-256.
  • OWASP Compliance: Prevention of SQL injection, XSS, CSRF, rate-limiting on sensitive endpoints (/auth/login, /auth/forgot-password, /withdrawals/request).

🛡 3. High Availability & Resilience

  • Uptime Target: 99.9% uptime for core API endpoints and database layer.
  • Failover: Database replication with primary-replica setup. Redis sentinel for queue and cache failover.
  • Queue Fault Tolerance: Asynchronous jobs (emails, outbox processing, video transcode) handled via BullMQ with automatic retries and dead-letter queues (DLQ).
  • Database Migrations: Zero-downtime database migrations using backward-compatible schema changes.

♿ 4. Accessibility & Cross-Browser Support

  • WCAG Compliance: Frontend applications must comply with WCAG 2.1 AA standards (color contrast ratio >= 4.5:1, full keyboard navigation, screen-reader friendly ARIA tags).
  • Browser Matrix: Full support for Chrome (latest 2 versions), Firefox (latest 2 versions), Safari (latest 2 versions), Edge (latest 2 versions), and mobile browsers (iOS Safari, Android Chrome).
  • Responsive Layout: Fluid layouts adapting seamlessly from mobile (320px) to desktop screens (2560px).