Skip to content

Requisitos Não-Funcionais (RNF)

Sport Tech Club - Plataforma SaaS Multi-tenant para Arenas de Esportes de Praia
Versão: 1.0.0 | Data: 2026-01-09 | Status: Ativo


Convenções

Nomenclatura

RNF-{CATEGORIA}-{NÚMERO}

Categorias (ISO 25010):
- PERF: Performance Efficiency
- SCAL: Scalability
- AVAIL: Availability
- SEC: Security
- MAINT: Maintainability
- USAB: Usability
- REL: Reliability
- PORT: Portability
- COMP: Compliance
- OBS: Observability

Estrutura de cada RNF

yaml
ID: RNF-XXXX-NNN
Título: Descrição concisa
Categoria: ISO 25010
Prioridade: P0 (Crítico) | P1 (Alto) | P2 (Médio) | P3 (Baixo)
Métrica: Valor mensurável
Valor Alvo: X unidade
Método Verificação: Como testar/medir
Impacto se não atendido: Consequências
Relacionado: Links para ADRs, outros RNFs

1. Performance Efficiency (RNF-PERF-XXX)

1.1 Latência de API

RNF-PERF-001: Latência P50 - Leitura Simples

yaml
ID: RNF-PERF-001
Título: Latência P50 para operações GET simples
Categoria: Performance Efficiency
Prioridade: P0
Métrica: Tempo de resposta (ms) no percentil 50
Valor Alvo: ≤ 50ms
Método Verificação: APM (Datadog), Load testing (k6)
Impacto se não atendido: Experiência do usuário degradada, abandono
Relacionado: NFR.md, ADR-005 (Real-time)

RNF-PERF-002: Latência P95 - Leitura Simples

yaml
ID: RNF-PERF-002
Título: Latência P95 para operações GET simples
Categoria: Performance Efficiency
Prioridade: P0
Métrica: Tempo de resposta (ms) no percentil 95
Valor Alvo: ≤ 100ms
Método Verificação: APM (Datadog), Load testing (k6)
Impacto se não atendido: Usuários percebem lentidão em 5% dos casos
Relacionado: RNF-PERF-001

RNF-PERF-003: Latência P99 - Leitura Simples

yaml
ID: RNF-PERF-003
Título: Latência P99 para operações GET simples
Categoria: Performance Efficiency
Prioridade: P1
Métrica: Tempo de resposta (ms) no percentil 99
Valor Alvo: ≤ 200ms
Método Verificação: APM (Datadog), Load testing (k6)
Impacto se não atendido: Experiência ruim para 1% dos usuários
Relacionado: RNF-PERF-002

RNF-PERF-004: Latência Máxima - Leitura Simples

yaml
ID: RNF-PERF-004
Título: Latência máxima aceitável para GET
Categoria: Performance Efficiency
Prioridade: P1
Métrica: Tempo máximo de resposta (ms)
Valor Alvo: ≤ 500ms
Método Verificação: Timeout configurado no ALB
Impacto se não atendido: Timeouts, erros 504
Relacionado: RNF-REL-012 (Timeout)

RNF-PERF-005 a RNF-PERF-034

[30 requisitos adicionais de performance incluindo:

  • Latência de escrita (POST/PUT) P50/P95/P99/Máx
  • Queries complexas e batch operations
  • WebSocket latency P50/P95/P99/Máx
  • Core Web Vitals (LCP, FID, CLS, INP)
  • TTFB (HTML, API, CDN)
  • Bundle sizes (initial, chunks, budget)
  • Database query times
  • Connection pool utilization
  • CPU/Memory database
  • Read replica lag
  • Cache hit ratio
  • Cache response time
  • CDN cache hit ratio]

2. Scalability (RNF-SCAL-XXX)

RNF-SCAL-001: Auto-scaling - API Gateway

yaml
ID: RNF-SCAL-001
Título: Auto-scaling do API Gateway baseado em CPU
Categoria: Scalability
Prioridade: P0
Métrica: Número de instâncias ECS
Valor Alvo: Min 3, Max 20, target CPU 70%
Método Verificação: ECS service auto-scaling config, teste de carga
Impacto se não atendido: Downtime em picos de tráfego, CPU 100%
Relacionado: RNF-AVAIL-041, NFR.md

RNF-SCAL-002 a RNF-SCAL-024

[23 requisitos adicionais de escalabilidade incluindo:

  • Auto-scaling por memória
  • Cooldown periods
  • Microservices scaling (Scheduling, Booking, Notification)
  • Worker queue scaling
  • Tenant limits (Small/Medium/Large/Enterprise)
  • Rate limiting por tenant
  • Connection pool size
  • Database instance type
  • Read replicas count
  • Cache sharding
  • Throughput (RPS, concurrent connections, WebSocket)
  • Database read/write ops/s
  • Cache ops/s]

3. Availability (RNF-AVAIL-XXX)

RNF-AVAIL-041: Production SLA - 99.9%

yaml
ID: RNF-AVAIL-041
Título: SLA de disponibilidade para ambiente de produção
Categoria: Availability
Prioridade: P0
Métrica: Uptime percentual mensal
Valor Alvo: ≥ 99.9% (max 43.8 min downtime/mês)
Método Verificação: Uptime monitoring (Pingdom, StatusCake), incident reports
Impacto se não atendido: Multas contratuais, perda de receita, reputação
Relacionado: NFR.md, DISASTER-RECOVERY.md

RNF-AVAIL-042 a RNF-AVAIL-051

[10 requisitos adicionais de disponibilidade incluindo:

  • Staging SLA
  • RTO (Recovery Time Objective)
  • RPO (Recovery Point Objective)
  • Database Multi-AZ failover
  • Redis cluster failover
  • Application Multi-AZ deployment
  • Load balancer health checks
  • Liveness/Readiness/Startup probes]

4. Security (RNF-SEC-XXX)

4.1 Authentication

RNF-SEC-052: Password Policy - Complexity

yaml
ID: RNF-SEC-052
Título: Política de senha - complexidade mínima
Categoria: Security
Prioridade: P0
Métrica: Regras de composição
Valor Alvo: Min 12 chars, uppercase, lowercase, number, special
Método Verificação: Keycloak password policy config, auth tests
Impacto se não atendido: Contas comprometidas facilmente (brute force)
Relacionado: NFR.md (Password Policy)

RNF-SEC-053 a RNF-SEC-083

[31 requisitos adicionais de segurança incluindo:

  • Password expiration/history
  • Rate limiting login attempts
  • Account lockout
  • MFA enforcement
  • MFA methods
  • Token TTL (access/refresh)
  • Session timeouts
  • Row-Level Security (RLS)
  • Tenant isolation
  • RBAC/ABAC
  • Encryption at rest (DB, backups, S3)
  • Encryption in transit (TLS 1.3, ciphers)
  • Certificate rotation
  • PII encryption (CPF, email, phone)
  • Key rotation
  • Security headers (CSP, HSTS, X-Frame-Options, etc)
  • Audit logs (retention, immutability)]

5. Maintainability (RNF-MAINT-XXX)

5.1 Code Quality

RNF-MAINT-084: Unit Test Coverage

yaml
ID: RNF-MAINT-084
Título: Cobertura de testes unitários
Categoria: Maintainability
Prioridade: P0
Métrica: Percentual de cobertura de código
Valor Alvo: ≥ 80%
Método Verificação: Jest coverage report, CI check
Impacto se não atendido: Regressões não detectadas, bugs em produção
Relacionado: NFR.md (Code Quality)

RNF-MAINT-085: Integration Test Coverage

yaml
ID: RNF-MAINT-085
Título: Cobertura de testes de integração
Categoria: Maintainability
Prioridade: P1
Métrica: Percentual de endpoints testados
Valor Alvo: ≥ 60%
Método Verificação: Integration test suite, CI report
Impacto se não atendido: Falhas de integração não detectadas
Relacionado: RNF-MAINT-084

RNF-MAINT-086: E2E Test Coverage - Critical Paths

yaml
ID: RNF-MAINT-086
Título: Testes end-to-end para fluxos críticos
Categoria: Maintainability
Prioridade: P0
Métrica: Fluxos críticos cobertos
Valor Alvo: 100% (Login, Booking, Payment, Check-in)
Método Verificação: Playwright/Cypress test suite
Impacto se não atendido: Fluxos críticos quebrados em produção
Relacionado: RNF-MAINT-085

RNF-MAINT-087: Linting - ESLint

yaml
ID: RNF-MAINT-087
Título: Linting automatizado com ESLint
Categoria: Maintainability
Prioridade: P1
Métrica: Erros de lint por commit
Valor Alvo: 0 erros (warnings permitidos)
Método Verificação: Pre-commit hook, CI check
Impacto se não atendido: Code style inconsistente, bugs sutis
Relacionado: NFR.md (Static Analysis)

RNF-MAINT-088: Code Formatting - Prettier

yaml
ID: RNF-MAINT-088
Título: Formatação automática de código
Categoria: Maintainability
Prioridade: P2
Métrica: Arquivos formatados automaticamente
Valor Alvo: 100% dos arquivos .ts/.js/.vue
Método Verificação: Pre-commit hook (Prettier)
Impacto se não atendido: Diffs poluídos, conflitos de merge
Relacionado: RNF-MAINT-087

RNF-MAINT-089: TypeScript Strict Mode

yaml
ID: RNF-MAINT-089
Título: TypeScript strict mode habilitado
Categoria: Maintainability
Prioridade: P0
Métrica: Configuração tsconfig.json
Valor Alvo: strict: true
Método Verificação: tsconfig.json, tsc --noEmit
Impacto se não atendido: Type errors não capturados, bugs em runtime
Relacionado: NFR.md (Type Checking)

RNF-MAINT-090: Security Scanning - Dependencies

yaml
ID: RNF-MAINT-090
Título: Scan automatizado de vulnerabilidades em dependências
Categoria: Maintainability
Prioridade: P0
Métrica: Vulnerabilidades críticas/altas
Valor Alvo: 0 vulnerabilidades críticas/altas
Método Verificação: npm audit, Snyk, CI check
Impacto se não atendido: Dependências vulneráveis em produção
Relacionado: NFR.md (Security Scan)

RNF-MAINT-091: Cyclomatic Complexity

yaml
ID: RNF-MAINT-091
Título: Complexidade ciclomática máxima por função
Categoria: Maintainability
Prioridade: P1
Métrica: Complexidade ciclomática
Valor Alvo: ≤ 10 por função
Método Verificação: ESLint complexity rule
Impacto se não atendido: Código difícil de entender e testar
Relacionado: NFR.md (Complexity)

RNF-MAINT-092: Cognitive Complexity

yaml
ID: RNF-MAINT-092
Título: Complexidade cognitiva máxima por função
Categoria: Maintainability
Prioridade: P1
Métrica: Cognitive complexity score
Valor Alvo: ≤ 15 por função
Método Verificação: SonarQube
Impacto se não atendido: Código difícil de manter
Relacionado: RNF-MAINT-091

RNF-MAINT-093: File Length

yaml
ID: RNF-MAINT-093
Título: Tamanho máximo de arquivo
Categoria: Maintainability
Prioridade: P2
Métrica: Linhas de código por arquivo
Valor Alvo: ≤ 300 linhas
Método Verificação: ESLint max-lines rule
Impacto se não atendido: Arquivos gigantes difíceis de navegar
Relacionado: RNF-MAINT-091

RNF-MAINT-094: Function Length

yaml
ID: RNF-MAINT-094
Título: Tamanho máximo de função
Categoria: Maintainability
Prioridade: P2
Métrica: Linhas de código por função
Valor Alvo: ≤ 50 linhas
Método Verificação: ESLint max-lines-per-function rule
Impacto se não atendido: Funções complexas e não reutilizáveis
Relacionado: RNF-MAINT-091

5.2 Documentation

RNF-MAINT-095: JSDoc - Public APIs

yaml
ID: RNF-MAINT-095
Título: Documentação JSDoc para APIs públicas
Categoria: Maintainability
Prioridade: P1
Métrica: Cobertura de JSDoc
Valor Alvo: 100% de classes/métodos públicos
Método Verificação: ESLint jsdoc plugin
Impacto se não atendido: APIs não documentadas, uso incorreto
Relacionado: NFR.md (Documentation)

RNF-MAINT-096: README - Per Module

yaml
ID: RNF-MAINT-096
Título: README.md em cada módulo/serviço
Categoria: Maintainability
Prioridade: P1
Métrica: Presença de README.md
Valor Alvo: 100% dos services/ e libs/
Método Verificação: Manual check, CI validation
Impacto se não atendido: Onboarding lento, módulos incompreensíveis
Relacionado: RNF-MAINT-095

RNF-MAINT-097: Architecture Decision Records (ADRs)

yaml
ID: RNF-MAINT-097
Título: ADRs para decisões arquiteturais importantes
Categoria: Maintainability
Prioridade: P0
Métrica: ADRs criados
Valor Alvo: 1 ADR por decisão crítica (ADR-001, ADR-002, etc)
Método Verificação: docs/adr/ directory
Impacto se não atendido: Decisões perdidas, refactorings sem contexto
Relacionado: ARCHITECTURE.md (ADRs)

RNF-MAINT-098: OpenAPI Specification

yaml
ID: RNF-MAINT-098
Título: Especificação OpenAPI 3.0 para todas as APIs REST
Categoria: Maintainability
Prioridade: P0
Métrica: Endpoints documentados
Valor Alvo: 100% dos endpoints
Método Verificação: Swagger UI, spectral lint
Impacto se não atendido: Integração difícil, contrato não claro
Relacionado: NFR.md (API Documentation)

RNF-MAINT-099: AsyncAPI Specification

yaml
ID: RNF-MAINT-099
Título: Especificação AsyncAPI para eventos
Categoria: Maintainability
Prioridade: P1
Métrica: Eventos documentados
Valor Alvo: 100% dos domain events
Método Verificação: AsyncAPI docs generator
Impacto se não atendido: Event-driven architecture não documentada
Relacionado: ADR-001 (EDA)

RNF-MAINT-100: Runbooks - Operations

yaml
ID: RNF-MAINT-100
Título: Runbooks para operações críticas
Categoria: Maintainability
Prioridade: P0
Métrica: Runbooks criados
Valor Alvo: Mínimo 5 runbooks (DB restore, failover, rollback, etc)
Método Verificação: docs/runbooks/ directory
Impacto se não atendido: Incidentes mal gerenciados, downtime prolongado
Relacionado: DISASTER-RECOVERY.md (Runbooks)

5.3 Deployment

RNF-MAINT-101: CI/CD Pipeline Time

yaml
ID: RNF-MAINT-101
Título: Tempo máximo de execução do pipeline CI/CD
Categoria: Maintainability
Prioridade: P1
Métrica: Duração (minutos) de build + test + deploy
Valor Alvo: ≤ 15 minutos
Método Verificação: GitHub Actions metrics
Impacto se não atendido: Feedback lento, deploy demorado
Relacionado: NFR.md (Deployment)

RNF-MAINT-102: Deployment Frequency

yaml
ID: RNF-MAINT-102
Título: Frequência de deploys em produção
Categoria: Maintainability
Prioridade: P1
Métrica: Deploys por dia
Valor Alvo: ≥ 1 deploy/dia (multiple deploys preferred)
Método Verificação: Deployment logs
Impacto se não atendido: Features demoram para chegar em produção
Relacionado: RNF-MAINT-101

RNF-MAINT-103: Lead Time for Changes

yaml
ID: RNF-MAINT-103
Título: Lead time entre commit e produção
Categoria: Maintainability
Prioridade: P1
Métrica: Tempo (horas) entre merge → prod
Valor Alvo: ≤ 1 hora
Método Verificação: DORA metrics
Impacto se não atendido: Feedback loop longo, valor demorado
Relacionado: RNF-MAINT-102

RNF-MAINT-104: Rollback Time

yaml
ID: RNF-MAINT-104
Título: Tempo para executar rollback de deploy
Categoria: Maintainability
Prioridade: P0
Métrica: Tempo (minutos) para rollback
Valor Alvo: ≤ 5 minutos
Método Verificação: Runbook execution, drill test
Impacto se não atendido: Deploy problemático fica em prod por muito tempo
Relacionado: DISASTER-RECOVERY.md (Rollback)

RNF-MAINT-105: Deployment Strategy - Blue-Green

yaml
ID: RNF-MAINT-105
Título: Estratégia de deployment blue-green implementada
Categoria: Maintainability
Prioridade: P1
Métrica: Deployment method
Valor Alvo: Blue-green deployment configured
Método Verificação: ECS/K8s deployment config
Impacto se não atendido: Downtime durante deploys
Relacionado: NFR.md (Deployment Strategy)

6. Usability (RNF-USAB-XXX)

6.1 Accessibility (WCAG 2.1 AA)

RNF-USAB-106: WCAG 2.1 AA Compliance

yaml
ID: RNF-USAB-106
Título: Conformidade com WCAG 2.1 nível AA
Categoria: Usability
Prioridade: P0
Métrica: Nível de conformidade
Valor Alvo: WCAG 2.1 AA (todas as diretrizes)
Método Verificação: Lighthouse accessibility audit, axe DevTools
Impacto se não atendido: Exclusão de usuários com deficiência, processos legais
Relacionado: NFR.md (Accessibility)

RNF-USAB-107: Text Alternatives

yaml
ID: RNF-USAB-107
Título: Alternativas textuais para imagens (alt text)
Categoria: Usability (WCAG 1.1.1)
Prioridade: P0
Métrica: Imagens com alt text
Valor Alvo: 100% das imagens
Método Verificação: Lighthouse audit, manual review
Impacto se não atendido: Screen readers não conseguem descrever imagens
Relacionado: RNF-USAB-106

RNF-USAB-108: Contrast Ratio

yaml
ID: RNF-USAB-108
Título: Contraste mínimo entre texto e fundo
Categoria: Usability (WCAG 1.4.3)
Prioridade: P0
Métrica: Ratio de contraste
Valor Alvo: ≥ 4.5:1 (texto normal), ≥ 3:1 (texto grande)
Método Verificação: Lighthouse audit, Contrast Checker
Impacto se não atendido: Texto ilegível para usuários com baixa visão
Relacionado: RNF-USAB-106

RNF-USAB-109: Keyboard Navigation

yaml
ID: RNF-USAB-109
Título: Todas as funcionalidades acessíveis via teclado
Categoria: Usability (WCAG 2.1.1)
Prioridade: P0
Métrica: Funcionalidades testadas
Valor Alvo: 100% navegável via Tab/Enter/Esc
Método Verificação: Manual keyboard testing, E2E tests
Impacto se não atendido: Usuários sem mouse não conseguem usar
Relacionado: RNF-USAB-106

RNF-USAB-110: Focus Indicators

yaml
ID: RNF-USAB-110
Título: Indicadores de foco visíveis
Categoria: Usability (WCAG 2.4.7)
Prioridade: P0
Métrica: Elementos com focus visible
Valor Alvo: 100% dos elementos interativos
Método Verificação: Manual testing, Lighthouse
Impacto se não atendido: Usuários de teclado perdem contexto
Relacionado: RNF-USAB-109

RNF-USAB-111: Text Resize

yaml
ID: RNF-USAB-111
Título: Texto redimensionável até 200% sem perda de conteúdo
Categoria: Usability (WCAG 1.4.4)
Prioridade: P0
Métrica: Zoom suportado
Valor Alvo: Até 200% zoom sem scroll horizontal
Método Verificação: Browser zoom testing
Impacto se não atendido: Usuários com baixa visão não conseguem ler
Relacionado: RNF-USAB-106

RNF-USAB-112: ARIA Attributes

yaml
ID: RNF-USAB-112
Título: Uso correto de atributos ARIA
Categoria: Usability (WCAG 4.1.2)
Prioridade: P0
Métrica: ARIA roles/states/properties
Valor Alvo: ARIA usado corretamente (não excessivo)
Método Verificação: axe DevTools, Lighthouse
Impacto se não atendido: Screen readers confusos, experiência ruim
Relacionado: RNF-USAB-106

6.2 Internationalization (i18n)

RNF-USAB-113: Default Locale

yaml
ID: RNF-USAB-113
Título: Locale padrão da plataforma
Categoria: Usability
Prioridade: P0
Métrica: Locale configurado
Valor Alvo: pt-BR (Brazilian Portuguese)
Método Verificação: i18n config, browser language detection
Impacto se não atendido: UI em idioma errado
Relacionado: NFR.md (Internationalization)

RNF-USAB-114: Supported Locales

yaml
ID: RNF-USAB-114
Título: Idiomas suportados pela plataforma
Categoria: Usability
Prioridade: P1
Métrica: Número de locales
Valor Alvo: 3 locales (pt-BR, en-US, es-ES)
Método Verificação: i18n translation files
Impacto se não atendido: Usuários internacionais não conseguem usar
Relacionado: RNF-USAB-113

RNF-USAB-115: Translation Coverage

yaml
ID: RNF-USAB-115
Título: Cobertura de traduções
Categoria: Usability
Prioridade: P0
Métrica: Percentual de strings traduzidas
Valor Alvo: 100% (UI, errors, emails)
Método Verificação: i18n coverage report
Impacto se não atendido: Mistura de idiomas, experiência inconsistente
Relacionado: RNF-USAB-114

RNF-USAB-116: Date Format Localization

yaml
ID: RNF-USAB-116
Título: Formato de data locale-aware
Categoria: Usability
Prioridade: P0
Métrica: Formatação correta
Valor Alvo: DD/MM/YYYY (pt-BR), MM/DD/YYYY (en-US)
Método Verificação: Manual testing per locale
Impacto se não atendido: Datas confusas (ex: 01/02 = 1 fev ou 2 jan?)
Relacionado: RNF-USAB-113

RNF-USAB-117: Currency Formatting

yaml
ID: RNF-USAB-117
Título: Formatação de moeda por locale
Categoria: Usability
Prioridade: P0
Métrica: Formatação correta
Valor Alvo: R$ 100,00 (pt-BR), $100.00 (en-US), €100,00 (es-ES)
Método Verificação: Manual testing per locale
Impacto se não atendido: Valores monetários confusos
Relacionado: RNF-USAB-116

RNF-USAB-118: Timezone Support

yaml
ID: RNF-USAB-118
Título: Suporte a timezone do usuário
Categoria: Usability
Prioridade: P0
Métrica: Timezone corretamente aplicado
Valor Alvo: Horários mostrados no timezone do user
Método Verificação: Manual testing em diferentes timezones
Impacto se não atendido: Horários de reservas incorretos
Relacionado: RNF-USAB-116

6.3 Responsiveness

RNF-USAB-119: Mobile-First Design

yaml
ID: RNF-USAB-119
Título: Abordagem mobile-first implementada
Categoria: Usability
Prioridade: P0
Métrica: Metodologia de design
Valor Alvo: CSS mobile-first (min-width media queries)
Método Verificação: Code review, responsive testing
Impacto se não atendido: Mobile experience inferior
Relacionado: NFR.md (Responsive)

RNF-USAB-120: Responsive Breakpoints

yaml
ID: RNF-USAB-120
Título: Breakpoints responsivos definidos
Categoria: Usability
Prioridade: P0
Métrica: Breakpoints configurados
Valor Alvo: xs(0), sm(576), md(768), lg(992), xl(1200), xxl(1400)
Método Verificação: CSS/Tailwind config
Impacto se não atendido: Layout quebrado em alguns tamanhos
Relacionado: RNF-USAB-119

RNF-USAB-121: Touch Targets - Minimum Size

yaml
ID: RNF-USAB-121
Título: Tamanho mínimo de alvos touch
Categoria: Usability (WCAG 2.5.5)
Prioridade: P0
Métrica: Tamanho (pixels) de botões/links
Valor Alvo: ≥ 44x44px
Método Verificação: Manual testing, Lighthouse
Impacto se não atendido: Botões difíceis de tocar em mobile
Relacionado: RNF-USAB-119

RNF-USAB-122: Touch Targets - Spacing

yaml
ID: RNF-USAB-122
Título: Espaçamento mínimo entre alvos touch
Categoria: Usability
Prioridade: P1
Métrica: Espaçamento (pixels)
Valor Alvo: ≥ 8px entre botões
Método Verificação: Manual testing
Impacto se não atendido: Toques acidentais em botões próximos
Relacionado: RNF-USAB-121

6.4 User Experience

RNF-USAB-123: Learning Time - New User

yaml
ID: RNF-USAB-123
Título: Tempo para usuário novo completar primeira reserva
Categoria: Usability
Prioridade: P1
Métrica: Tempo (minutos) até primeira booking
Valor Alvo: ≤ 5 minutos
Método Verificação: User testing, analytics funnel
Impacto se não atendido: Onboarding frustrante, abandono
Relacionado: RNF-USAB-106

RNF-USAB-124: Error Rate - User Actions

yaml
ID: RNF-USAB-124
Título: Taxa de erro em ações do usuário
Categoria: Usability
Prioridade: P1
Métrica: Percentual de ações que resultam em erro
Valor Alvo: ≤ 5%
Método Verificação: Error tracking (Sentry), analytics
Impacto se não atendido: UX frustrante, usuários desistem
Relacionado: RNF-REL-025

RNF-USAB-125: Task Completion Rate

yaml
ID: RNF-USAB-125
Título: Taxa de conclusão de tarefas críticas
Categoria: Usability
Prioridade: P0
Métrica: Percentual de usuários que completam booking
Valor Alvo: ≥ 90%
Método Verificação: Analytics funnel
Impacto se não atendido: Usuários não conseguem usar funcionalidade core
Relacionado: RNF-USAB-123

7. Reliability (RNF-REL-XXX)

7.1 Error Handling

RNF-REL-126: Error Rate - Overall

yaml
ID: RNF-REL-126
Título: Taxa de erro geral da API
Categoria: Reliability
Prioridade: P0
Métrica: Percentual de erros 5xx / total requests
Valor Alvo: ≤ 0.1%
Método Verificação: APM (Datadog), CloudWatch metrics
Impacto se não atendido: Experiência instável, perda de confiança
Relacionado: NFR.md (SLIs)

RNF-REL-127: Error Handling - Graceful Degradation

yaml
ID: RNF-REL-127
Título: Degradação graciosa em falhas de dependências
Categoria: Reliability
Prioridade: P0
Métrica: Funcionalidades core disponíveis
Valor Alvo: 80% das funcionalidades funcionam sem dependência externa
Método Verificação: Chaos engineering, fault injection
Impacto se não atendido: Downtime total quando serviço externo cai
Relacionado: ADR-004 (Resilience)

RNF-REL-128: Circuit Breaker - Failure Threshold

yaml
ID: RNF-REL-128
Título: Circuit breaker - threshold de falhas para abrir
Categoria: Reliability
Prioridade: P0
Métrica: Número de falhas consecutivas
Valor Alvo: 5 falhas consecutivas OU 50% de falhas em janela
Método Verificação: Circuit breaker config, integration tests
Impacto se não atendido: Cascading failures, timeout excessivo
Relacionado: NFR.md (Circuit Breaker)

RNF-REL-129: Circuit Breaker - Timeout

yaml
ID: RNF-REL-129
Título: Circuit breaker - timeout para chamadas lentas
Categoria: Reliability
Prioridade: P0
Métrica: Tempo (ms) considerado lento
Valor Alvo: 2000ms
Método Verificação: Circuit breaker config
Impacto se não atendido: Threads bloqueadas em chamadas lentas
Relacionado: RNF-REL-128

RNF-REL-130: Circuit Breaker - Recovery Time

yaml
ID: RNF-REL-130
Título: Circuit breaker - tempo em estado open antes de half-open
Categoria: Reliability
Prioridade: P0
Métrica: Duração (ms) em open state
Valor Alvo: 30000ms (30s)
Método Verificação: Circuit breaker config
Impacto se não atendido: Recovery muito lento ou muito rápido (thrashing)
Relacionado: RNF-REL-128

RNF-REL-131: Retry Policy - Max Attempts

yaml
ID: RNF-REL-131
Título: Política de retry - máximo de tentativas
Categoria: Reliability
Prioridade: P0
Métrica: Número de retries
Valor Alvo: 3 tentativas
Método Verificação: HTTP client config, integration tests
Impacto se não atendido: Falhas transitórias causam erros permanentes
Relacionado: RNF-REL-128

RNF-REL-132: Retry Policy - Backoff Strategy

yaml
ID: RNF-REL-132
Título: Política de retry - estratégia de backoff
Categoria: Reliability
Prioridade: P0
Métrica: Tipo de backoff
Valor Alvo: Exponential backoff (1s, 2s, 4s)
Método Verificação: HTTP client config
Impacto se não atendido: Retry storms, overload de sistemas falhando
Relacionado: RNF-REL-131

RNF-REL-133: Idempotency - All Mutations

yaml
ID: RNF-REL-133
Título: Idempotência em todas as operações de escrita
Categoria: Reliability
Prioridade: P0
Métrica: Endpoints POST/PUT/DELETE com suporte
Valor Alvo: 100% dos endpoints de mutação
Método Verificação: Integration tests (duplicate requests)
Impacto se não atendido: Reservas duplicadas, pagamentos duplicados
Relacionado: ADR-004 (Idempotency)

RNF-REL-134: Timeout - Database Queries

yaml
ID: RNF-REL-134
Título: Timeout para queries SQL
Categoria: Reliability
Prioridade: P0
Métrica: Tempo máximo (ms) de execução
Valor Alvo: 5000ms (5s)
Método Verificação: Prisma client config, pg_stat_statements
Impacto se não atendido: Queries lentas bloqueiam conexões
Relacionado: RNF-PERF-026

RNF-REL-135: Timeout - External API Calls

yaml
ID: RNF-REL-135
Título: Timeout para chamadas de APIs externas
Categoria: Reliability
Prioridade: P0
Métrica: Tempo máximo (ms) de conexão + resposta
Valor Alvo: 3000ms connect, 10000ms total
Método Verificação: HTTP client config
Impacto se não atendido: Threads bloqueadas esperando infinitamente
Relacionado: RNF-REL-129

7.2 Data Integrity

RNF-REL-136: Database Transactions - ACID Compliance

yaml
ID: RNF-REL-136
Título: Transações SQL com garantias ACID
Categoria: Reliability
Prioridade: P0
Métrica: Isolation level
Valor Alvo: READ COMMITTED (PostgreSQL default)
Método Verificação: Database config, transaction tests
Impacto se não atendido: Dados inconsistentes, race conditions
Relacionado: RLS-POLICIES.md

RNF-REL-137: Foreign Key Constraints

yaml
ID: RNF-REL-137
Título: Foreign keys definidas e enforced
Categoria: Reliability
Prioridade: P0
Métrica: Constraints configuradas
Valor Alvo: 100% dos relacionamentos têm FK
Método Verificação: Database schema review, migration tests
Impacto se não atendido: Dados órfãos, referências quebradas
Relacionado: RNF-REL-136

RNF-REL-138: Unique Constraints

yaml
ID: RNF-REL-138
Título: Unique constraints para campos críticos
Categoria: Reliability
Prioridade: P0
Métrica: Constraints configuradas
Valor Alvo: Unique em: email, CPF, booking_id, etc
Método Verificação: Database schema review
Impacto se não atendido: Duplicatas de dados críticos
Relacionado: RNF-REL-137

RNF-REL-139: NOT NULL Constraints

yaml
ID: RNF-REL-139
Título: NOT NULL em campos obrigatórios
Categoria: Reliability
Prioridade: P0
Métrica: Campos configurados como NOT NULL
Valor Alvo: Todos os campos obrigatórios de negócio
Método Verificação: Database schema review
Impacto se não atendido: Dados incompletos, bugs em queries
Relacionado: RNF-REL-137

7.3 Resilience

RNF-REL-140: MTBF - Mean Time Between Failures

yaml
ID: RNF-REL-140
Título: Tempo médio entre falhas
Categoria: Reliability
Prioridade: P1
Métrica: Tempo (horas) entre incidents P0/P1
Valor Alvo: ≥ 720 horas (30 dias)
Método Verificação: Incident tracking (PagerDuty)
Impacto se não atendido: Plataforma instável, perda de confiança
Relacionado: RNF-AVAIL-041

RNF-REL-141: MTTR - Mean Time To Recovery

yaml
ID: RNF-REL-141
Título: Tempo médio para recuperação de falhas
Categoria: Reliability
Prioridade: P0
Métrica: Tempo (minutos) entre detecção → resolução
Valor Alvo: ≤ 30 minutos
Método Verificação: Incident tracking, DORA metrics
Impacto se não atendido: Downtime prolongado
Relacionado: RNF-AVAIL-043 (RTO)

8. Portability (RNF-PORT-XXX)

8.1 Browser Support

RNF-PORT-142: Desktop Browsers - Chrome

yaml
ID: RNF-PORT-142
Título: Suporte a Google Chrome desktop
Categoria: Portability
Prioridade: P0
Métrica: Versões suportadas
Valor Alvo: Últimas 2 versões
Método Verificação: BrowserStack testing, Browserslist config
Impacto se não atendido: Usuários Chrome não conseguem acessar
Relacionado: NFR.md (Browser Support)

RNF-PORT-143: Desktop Browsers - Firefox

yaml
ID: RNF-PORT-143
Título: Suporte a Mozilla Firefox desktop
Categoria: Portability
Prioridade: P0
Métrica: Versões suportadas
Valor Alvo: Últimas 2 versões
Método Verificação: BrowserStack testing
Impacto se não atendido: Usuários Firefox não conseguem acessar
Relacionado: RNF-PORT-142

RNF-PORT-144: Desktop Browsers - Safari

yaml
ID: RNF-PORT-144
Título: Suporte a Safari desktop (macOS)
Categoria: Portability
Prioridade: P0
Métrica: Versões suportadas
Valor Alvo: Últimas 2 versões
Método Verificação: BrowserStack testing
Impacto se não atendido: Usuários Mac não conseguem acessar
Relacionado: RNF-PORT-142

RNF-PORT-145: Desktop Browsers - Edge

yaml
ID: RNF-PORT-145
Título: Suporte a Microsoft Edge
Categoria: Portability
Prioridade: P1
Métrica: Versões suportadas
Valor Alvo: Últimas 2 versões (Chromium-based)
Método Verificação: BrowserStack testing
Impacto se não atendido: Usuários Edge corporativos bloqueados
Relacionado: RNF-PORT-142

RNF-PORT-146: Mobile Browsers - Chrome Android

yaml
ID: RNF-PORT-146
Título: Suporte a Chrome mobile (Android)
Categoria: Portability
Prioridade: P0
Métrica: Versões suportadas
Valor Alvo: Últimas 2 versões
Método Verificação: BrowserStack mobile testing
Impacto se não atendido: Usuários Android não conseguem acessar
Relacionado: RNF-PORT-142

RNF-PORT-147: Mobile Browsers - Safari iOS

yaml
ID: RNF-PORT-147
Título: Suporte a Safari mobile (iOS)
Categoria: Portability
Prioridade: P0
Métrica: Versões suportadas
Valor Alvo: iOS 14+
Método Verificação: BrowserStack mobile testing
Impacto se não atendido: Usuários iPhone não conseguem acessar
Relacionado: RNF-PORT-144

8.2 Device Support

RNF-PORT-148: Mobile OS - iOS

yaml
ID: RNF-PORT-148
Título: Suporte a dispositivos iOS
Categoria: Portability
Prioridade: P0
Métrica: Versões de iOS
Valor Alvo: iOS 14+
Método Verificação: Device testing (physical + BrowserStack)
Impacto se não atendido: Metade dos usuários mobile bloqueados (iOS market share)
Relacionado: RNF-PORT-147

RNF-PORT-149: Mobile OS - Android

yaml
ID: RNF-PORT-149
Título: Suporte a dispositivos Android
Categoria: Portability
Prioridade: P0
Métrica: Versões de Android
Valor Alvo: Android 10+
Método Verificação: Device testing (physical + BrowserStack)
Impacto se não atendido: Metade dos usuários mobile bloqueados (Android market share)
Relacionado: RNF-PORT-146

RNF-PORT-150: Mobile Screen Sizes

yaml
ID: RNF-PORT-150
Título: Suporte a diferentes tamanhos de tela mobile
Categoria: Portability
Prioridade: P0
Métrica: Tamanhos testados
Valor Alvo: 320px - 428px width
Método Verificação: Responsive testing, BrowserStack
Impacto se não atendido: Layout quebrado em alguns dispositivos
Relacionado: RNF-USAB-120

RNF-PORT-151: Tablet Support

yaml
ID: RNF-PORT-151
Título: Suporte a tablets (iPad, Android tablets)
Categoria: Portability
Prioridade: P1
Métrica: Dispositivos testados
Valor Alvo: iPad (iPadOS 14+), Android tablets (10+)
Método Verificação: Device testing
Impacto se não atendido: Tablets veem versão mobile ou desktop quebrada
Relacionado: RNF-PORT-148, RNF-PORT-149

8.3 PWA Requirements

RNF-PORT-152: Progressive Web App - Manifest

yaml
ID: RNF-PORT-152
Título: Web App Manifest configurado
Categoria: Portability
Prioridade: P1
Métrica: Manifest.json presente e válido
Valor Alvo: manifest.json com name, icons, theme_color, start_url
Método Verificação: Lighthouse PWA audit
Impacto se não atendido: Não pode ser instalado como app
Relacionado: NFR.md (PWA)

RNF-PORT-153: Progressive Web App - Service Worker

yaml
ID: RNF-PORT-153
Título: Service Worker implementado
Categoria: Portability
Prioridade: P1
Métrica: Service Worker registrado
Valor Alvo: SW com cache strategy (offline fallback)
Método Verificação: Lighthouse PWA audit, DevTools
Impacto se não atendido: Não funciona offline, não é PWA completo
Relacionado: RNF-PORT-152

RNF-PORT-154: Offline Capability - Static Assets

yaml
ID: RNF-PORT-154
Título: Capacidade offline para assets estáticos
Categoria: Portability
Prioridade: P2
Métrica: Assets cacheados pelo SW
Valor Alvo: HTML, CSS, JS, imagens core cacheadas
Método Verificação: DevTools Application tab, offline testing
Impacto se não atendido: Nada funciona offline
Relacionado: RNF-PORT-153

RNF-PORT-155: Offline Capability - Core Features

yaml
ID: RNF-PORT-155
Título: Funcionalidades core disponíveis offline (limitado)
Categoria: Portability
Prioridade: P3
Métrica: Features funcionando offline
Valor Alvo: Ver reservas existentes (cached), contato de emergência
Método Verificação: Offline E2E tests
Impacto se não atendido: Totalmente inutilizável sem internet
Relacionado: RNF-PORT-154, DISASTER-RECOVERY.md (Offline Mode)

9. Compliance (RNF-COMP-XXX)

9.1 LGPD (Lei Geral de Proteção de Dados)

RNF-COMP-156: LGPD - Data Minimization

yaml
ID: RNF-COMP-156
Título: Minimização de dados coletados (LGPD Art. 6°)
Categoria: Compliance
Prioridade: P0
Métrica: Dados coletados vs necessários
Valor Alvo: Apenas dados estritamente necessários
Método Verificação: Privacy audit, legal review
Impacto se não atendido: Multa até 2% do faturamento (max R$ 50M)
Relacionado: NFR.md (Compliance)
yaml
ID: RNF-COMP-157
Título: Gestão de consentimento do usuário (LGPD Art. 7°)
Categoria: Compliance
Prioridade: P0
Métrica: Consentimentos registrados
Valor Alvo: Consent explícito para cada finalidade (marketing, etc)
Método Verificação: Consent banner, audit log
Impacto se não atendido: LGPD violation, multas
Relacionado: RNF-COMP-156

RNF-COMP-158: LGPD - Right to Access

yaml
ID: RNF-COMP-158
Título: Direito de acesso aos dados pessoais (LGPD Art. 18, II)
Categoria: Compliance
Prioridade: P0
Métrica: Funcionalidade implementada
Valor Alvo: Usuário pode exportar todos os seus dados (JSON/PDF)
Método Verificação: Feature testing, legal review
Impacto se não atendido: LGPD violation, processo judicial
Relacionado: RNF-COMP-157

RNF-COMP-159: LGPD - Right to Deletion

yaml
ID: RNF-COMP-159
Título: Direito de exclusão/anonimização (LGPD Art. 18, VI)
Categoria: Compliance
Prioridade: P0
Métrica: Funcionalidade implementada
Valor Alvo: Usuário pode solicitar exclusão (processo automatizado)
Método Verificação: Feature testing, audit log
Impacto se não atendido: LGPD violation, processo judicial
Relacionado: RNF-COMP-158

RNF-COMP-160: LGPD - Data Retention Policy

yaml
ID: RNF-COMP-160
Título: Política de retenção de dados (LGPD Art. 16)
Categoria: Compliance
Prioridade: P0
Métrica: Período de retenção definido
Valor Alvo: Dados deletados após 7 anos (ou fim da finalidade)
Método Verificação: Automated cleanup jobs, audit
Impacto se não atendido: Dados retidos desnecessariamente (LGPD violation)
Relacionado: RNF-COMP-159

RNF-COMP-161: LGPD - Data Breach Notification

yaml
ID: RNF-COMP-161
Título: Notificação de vazamento de dados (LGPD Art. 48)
Categoria: Compliance
Prioridade: P0
Métrica: Tempo para notificação
Valor Alvo: ≤ 72 horas para ANPD + usuários afetados
Método Verificação: Incident response runbook
Impacto se não atendido: Multa agravada, processo criminal
Relacionado: DISASTER-RECOVERY.md (Ransomware)

RNF-COMP-162: LGPD - Privacy Policy

yaml
ID: RNF-COMP-162
Título: Política de Privacidade atualizada (LGPD Art. 9°)
Categoria: Compliance
Prioridade: P0
Métrica: Documento publicado
Valor Alvo: Privacy Policy acessível, clara e atualizada
Método Verificação: Legal review, publicação no site
Impacto se não atendido: LGPD violation, falta de transparência
Relacionado: RNF-COMP-157

9.2 PCI-DSS (Payment Card Industry)

RNF-COMP-163: PCI-DSS - No Card Data Storage

yaml
ID: RNF-COMP-163
Título: Não armazenamento de dados de cartão
Categoria: Compliance
Prioridade: P0
Métrica: Dados de cartão em database
Valor Alvo: 0 (zero) - usar tokenização Stripe/MercadoPago
Método Verificação: Database audit, code review
Impacto se não atendido: PCI-DSS compliance failure, multas pesadas
Relacionado: ARCHITECTURE.md (Commerce Context)

RNF-COMP-164: PCI-DSS - Secure Transmission

yaml
ID: RNF-COMP-164
Título: Transmissão segura de dados de pagamento
Categoria: Compliance
Prioridade: P0
Métrica: Protocolo usado
Valor Alvo: TLS 1.3 (ou 1.2), direct to payment gateway
Método Verificação: Network traffic analysis
Impacto se não atendido: PCI-DSS violation
Relacionado: RNF-SEC-070, RNF-COMP-163

9.3 Backup and Disaster Recovery

RNF-COMP-165: Backup Retention - Database

yaml
ID: RNF-COMP-165
Título: Retenção de backups de database
Categoria: Compliance
Prioridade: P0
Métrica: Período de retenção (dias)
Valor Alvo: 35 dias (automated) + snapshots críticos indefinidos
Método Verificação: RDS backup config
Impacto se não atendido: Impossível recuperar dados antigos
Relacionado: DISASTER-RECOVERY.md (Backup Strategy)

RNF-COMP-166: Backup Retention - Audit Logs

yaml
ID: RNF-COMP-166
Título: Retenção de audit logs
Categoria: Compliance
Prioridade: P0
Métrica: Período de retenção
Valor Alvo: 90 dias (hot), 1 ano (cold S3)
Método Verificação: Database + S3 lifecycle policy
Impacto se não atendido: Impossível investigar incidentes antigos
Relacionado: RNF-SEC-082

RNF-COMP-167: Backup Encryption

yaml
ID: RNF-COMP-167
Título: Criptografia de backups
Categoria: Compliance
Prioridade: P0
Métrica: Algoritmo de criptografia
Valor Alvo: AES-256 (S3 SSE, RDS encryption)
Método Verificação: AWS console, backup test restore
Impacto se não atendido: Backups roubados expõem todos os dados
Relacionado: RNF-SEC-068

RNF-COMP-168: Disaster Recovery Testing

yaml
ID: RNF-COMP-168
Título: Testes de disaster recovery
Categoria: Compliance
Prioridade: P0
Métrica: Frequência de DR drills
Valor Alvo: Trimestral (database restore), Semestral (war room)
Método Verificação: DR drill reports, calendar schedule
Impacto se não atendido: Runbooks desatualizados, RTO/RPO não atingidos
Relacionado: DISASTER-RECOVERY.md (Testing)

9.4 Data Residency

RNF-COMP-169: Data Residency - Brazil

yaml
ID: RNF-COMP-169
Título: Residência de dados no Brasil (LGPD)
Categoria: Compliance
Prioridade: P0
Métrica: Localização física dos servidores
Valor Alvo: Primary em us-east-1 (N. Virginia), replica opcional SA-EAST-1
Método Verificação: AWS region configuration
Impacto se não atendido: Potencial LGPD violation (transferência internacional)
Relacionado: RNF-COMP-156

10. Observability (RNF-OBS-XXX)

10.1 Logging

RNF-OBS-170: Structured Logging - JSON Format

yaml
ID: RNF-OBS-170
Título: Logs estruturados em formato JSON
Categoria: Observability
Prioridade: P0
Métrica: Formato de log
Valor Alvo: JSON com campos padrão (timestamp, level, message, context)
Método Verificação: Log aggregation (CloudWatch Insights), code review
Impacto se não atendido: Logs não parseáveis, análise difícil
Relacionado: NFR.md (Logging)

RNF-OBS-171: Log Levels - Appropriate Usage

yaml
ID: RNF-OBS-171
Título: Uso correto de log levels
Categoria: Observability
Prioridade: P0
Métrica: Log level por ambiente
Valor Alvo: Production=INFO, Staging=DEBUG, Dev=DEBUG
Método Verificação: Application config, log volume
Impacto se não atendido: Logs excessivos ($$) ou insuficientes (debugging impossível)
Relacionado: RNF-OBS-170

RNF-OBS-172: Correlation ID - All Requests

yaml
ID: RNF-OBS-172
Título: Correlation ID em todos os logs de requisição
Categoria: Observability
Prioridade: P0
Métrica: Presença de correlation_id
Valor Alvo: 100% dos logs incluem correlation_id
Método Verificação: Log sampling, middleware inspection
Impacto se não atendido: Impossível rastrear requisição através de serviços
Relacionado: RNF-OBS-170

RNF-OBS-173: Tenant ID - All Logs

yaml
ID: RNF-OBS-173
Título: Tenant ID em todos os logs (multi-tenant)
Categoria: Observability
Prioridade: P0
Métrica: Presença de tenant_id
Valor Alvo: 100% dos logs incluem tenant_id
Método Verificação: Log sampling
Impacto se não atendido: Impossível filtrar logs por tenant, debugging difícil
Relacionado: RNF-OBS-172, RLS-POLICIES.md

RNF-OBS-174: Log Retention - Hot Storage

yaml
ID: RNF-OBS-174
Título: Retenção de logs em storage hot (CloudWatch)
Categoria: Observability
Prioridade: P1
Métrica: Período de retenção (dias)
Valor Alvo: 7 dias
Método Verificação: CloudWatch log group retention config
Impacto se não atendido: Logs antigos não acessíveis rapidamente
Relacionado: RNF-OBS-170

RNF-OBS-175: Log Retention - Cold Storage

yaml
ID: RNF-OBS-175
Título: Retenção de logs em storage cold (S3)
Categoria: Observability
Prioridade: P1
Métrica: Período de retenção
Valor Alvo: 90 dias (compliance)
Método Verificação: S3 lifecycle policy
Impacto se não atendido: Impossível investigar incidentes antigos
Relacionado: RNF-OBS-174, RNF-COMP-166

RNF-OBS-176: PII Masking in Logs

yaml
ID: RNF-OBS-176
Título: Mascaramento de PII em logs
Categoria: Observability
Prioridade: P0
Métrica: Campos sensíveis mascarados
Valor Alvo: CPF masked, email/phone hashed, password excluded
Método Verificação: Log sampling, regex search for patterns
Impacto se não atendido: LGPD violation, dados sensíveis em logs
Relacionado: RNF-SEC-073, RNF-COMP-156

10.2 Metrics

RNF-OBS-177: Metrics Collection - Prometheus

yaml
ID: RNF-OBS-177
Título: Coleta de métricas via Prometheus
Categoria: Observability
Prioridade: P0
Métrica: Scraping configurado
Valor Alvo: Prometheus scraping /metrics endpoint (interval=15s)
Método Verificação: Prometheus config, metrics endpoint test
Impacto se não atendido: Sem métricas, sem observabilidade
Relacionado: NFR.md (Metrics)

RNF-OBS-178: RED Metrics - Request Count

yaml
ID: RNF-OBS-178
Título: RED metrics - Request count por endpoint
Categoria: Observability
Prioridade: P0
Métrica: Metric name
Valor Alvo: http_requests_total{method, path, status}
Método Verificação: Prometheus query, Grafana dashboard
Impacto se não atendido: Impossível medir tráfego
Relacionado: RNF-OBS-177

RNF-OBS-179: RED Metrics - Error Rate

yaml
ID: RNF-OBS-179
Título: RED metrics - Error rate
Categoria: Observability
Prioridade: P0
Métrica: Metric name
Valor Alvo: http_requests_total{status=~"5.."}
Método Verificação: Prometheus query
Impacto se não atendido: Impossível medir confiabilidade
Relacionado: RNF-REL-126

RNF-OBS-180: RED Metrics - Duration (Latency)

yaml
ID: RNF-OBS-180
Título: RED metrics - Request duration histogram
Categoria: Observability
Prioridade: P0
Métrica: Metric name
Valor Alvo: http_request_duration_seconds (histogram)
Método Verificação: Prometheus query (quantile)
Impacto se não atendido: Impossível medir latência P50/P95/P99
Relacionado: RNF-PERF-001

RNF-OBS-181: USE Metrics - CPU Utilization

yaml
ID: RNF-OBS-181
Título: USE metrics - CPU utilization
Categoria: Observability
Prioridade: P0
Métrica: Metric name
Valor Alvo: process_cpu_usage{container}
Método Verificação: Prometheus query, Grafana dashboard
Impacto se não atendido: Não detecta bottleneck de CPU
Relacionado: RNF-PERF-028

RNF-OBS-182: USE Metrics - Memory Utilization

yaml
ID: RNF-OBS-182
Título: USE metrics - Memory utilization
Categoria: Observability
Prioridade: P0
Métrica: Metric name
Valor Alvo: process_memory_usage{container}
Método Verificação: Prometheus query
Impacto se não atendido: Não detecta memory leaks
Relacionado: RNF-PERF-029

RNF-OBS-183: Business Metrics - Bookings per Minute

yaml
ID: RNF-OBS-183
Título: Métrica de negócio - Reservas por minuto
Categoria: Observability
Prioridade: P1
Métrica: Metric name
Valor Alvo: bookings_created_total (counter)
Método Verificação: Prometheus query, business dashboard
Impacto se não atendido: Sem visibilidade de KPIs de negócio
Relacionado: RNF-OBS-177

RNF-OBS-184: Business Metrics - Revenue per Hour

yaml
ID: RNF-OBS-184
Título: Métrica de negócio - Receita por hora
Categoria: Observability
Prioridade: P1
Métrica: Metric name
Valor Alvo: revenue_brl_total (counter)
Método Verificação: Business dashboard
Impacto se não atendido: Sem visibilidade de receita em tempo real
Relacionado: RNF-OBS-183

RNF-OBS-185: Business Metrics - Active Users

yaml
ID: RNF-OBS-185
Título: Métrica de negócio - Usuários ativos
Categoria: Observability
Prioridade: P1
Métrica: Metric name
Valor Alvo: active_users_gauge (gauge)
Método Verificação: Prometheus query
Impacto se não atendido: Sem visibilidade de engagement
Relacionado: RNF-OBS-183

RNF-OBS-186: Metrics Retention

yaml
ID: RNF-OBS-186
Título: Retenção de métricas Prometheus
Categoria: Observability
Prioridade: P1
Métrica: Período de retenção
Valor Alvo: 15 dias (local Prometheus), 1 ano (Thanos S3)
Método Verificação: Prometheus config, Thanos setup
Impacto se não atendido: Histórico curto, análise de tendências impossível
Relacionado: RNF-OBS-177

10.3 Tracing

RNF-OBS-187: Distributed Tracing - OpenTelemetry

yaml
ID: RNF-OBS-187
Título: Tracing distribuído com OpenTelemetry
Categoria: Observability
Prioridade: P0
Métrica: Serviços instrumentados
Valor Alvo: 100% dos microserviços
Método Verificação: Jaeger UI, trace sampling
Impacto se não atendido: Impossível debugar latência cross-service
Relacionado: NFR.md (Tracing)

RNF-OBS-188: Trace Sampling - Production

yaml
ID: RNF-OBS-188
Título: Taxa de sampling de traces em produção
Categoria: Observability
Prioridade: P1
Métrica: Percentual de traces coletados
Valor Alvo: 10% (probabilistic sampling)
Método Verificação: OpenTelemetry config
Impacto se não atendido: Overhead excessivo (100%) ou dados insuficientes (<1%)
Relacionado: RNF-OBS-187

RNF-OBS-189: Trace Sampling - Staging

yaml
ID: RNF-OBS-189
Título: Taxa de sampling de traces em staging
Categoria: Observability
Prioridade: P2
Métrica: Percentual de traces coletados
Valor Alvo: 100%
Método Verificação: OpenTelemetry config
Impacto se não atendido: Debugging incompleto em staging
Relacionado: RNF-OBS-188

RNF-OBS-190: Trace Context Propagation

yaml
ID: RNF-OBS-190
Título: Propagação de contexto de trace (W3C Trace Context)
Categoria: Observability
Prioridade: P0
Métrica: Headers propagados
Valor Alvo: traceparent, tracestate, baggage
Método Verificação: HTTP header inspection, Jaeger traces
Impacto se não atendido: Traces fragmentados, sem correlação
Relacionado: RNF-OBS-187

RNF-OBS-191: Trace Retention - Hot Storage

yaml
ID: RNF-OBS-191
Título: Retenção de traces em storage hot (Jaeger)
Categoria: Observability
Prioridade: P2
Métrica: Período de retenção
Valor Alvo: 7 dias
Método Verificação: Jaeger storage config
Impacto se não atendido: Traces antigos não acessíveis
Relacionado: RNF-OBS-187

RNF-OBS-192: Trace Retention - Cold Storage

yaml
ID: RNF-OBS-192
Título: Retenção de traces em storage cold (S3)
Categoria: Observability
Prioridade: P3
Métrica: Período de retenção
Valor Alvo: 30 dias
Método Verificação: S3 lifecycle policy
Impacto se não atendido: Impossível analisar incidentes antigos
Relacionado: RNF-OBS-191

10.4 Alerting

RNF-OBS-193: Alert Channels - Slack

yaml
ID: RNF-OBS-193
Título: Alertas enviados para Slack #alerts-prod
Categoria: Observability
Prioridade: P0
Métrica: Canal configurado
Valor Alvo: Alertmanager → Slack webhook
Método Verificação: Test alert
Impacto se não atendido: Equipe não notificada de incidentes
Relacionado: NFR.md (Alerting)

RNF-OBS-194: Alert Channels - PagerDuty

yaml
ID: RNF-OBS-194
Título: Alertas críticos para PagerDuty (on-call)
Categoria: Observability
Prioridade: P0
Métrica: Integração configurada
Valor Alvo: Alertmanager → PagerDuty (severity=critical)
Método Verificação: Test page
Impacto se não atendido: On-call não notificado de P0 incidents
Relacionado: RNF-OBS-193, DISASTER-RECOVERY.md

RNF-OBS-195: Alert - Service Down

yaml
ID: RNF-OBS-195
Título: Alerta de serviço indisponível
Categoria: Observability
Prioridade: P0
Métrica: Alert rule
Valor Alvo: up{job="api"} == 0 for 1m → Critical
Método Verificação: Prometheus alert config, test
Impacto se não atendido: Downtime não detectado
Relacionado: RNF-AVAIL-041

RNF-OBS-196: Alert - High Error Rate

yaml
ID: RNF-OBS-196
Título: Alerta de taxa de erro elevada
Categoria: Observability
Prioridade: P0
Métrica: Alert rule
Valor Alvo: error_rate > 10% for 5m → Critical
Método Verificação: Prometheus alert config
Impacto se não atendido: Degradação não detectada
Relacionado: RNF-REL-126

RNF-OBS-197: Alert - High Latency

yaml
ID: RNF-OBS-197
Título: Alerta de latência elevada
Categoria: Observability
Prioridade: P0
Métrica: Alert rule
Valor Alvo: latency_p99 > 5s for 5m → Warning
Método Verificação: Prometheus alert config
Impacto se não atendido: Lentidão não detectada
Relacionado: RNF-PERF-003

RNF-OBS-198: Alert - Disk Usage

yaml
ID: RNF-OBS-198
Título: Alerta de uso de disco elevado
Categoria: Observability
Prioridade: P1
Métrica: Alert rule
Valor Alvo: disk_usage > 80% → Warning, > 90% → Critical
Método Verificação: Prometheus alert config
Impacto se não atendido: Disco cheio causa falhas
Relacionado: RNF-PERF-029

RNF-OBS-199: Alert - Certificate Expiration

yaml
ID: RNF-OBS-199
Título: Alerta de expiração de certificado TLS
Categoria: Observability
Prioridade: P0
Métrica: Alert rule
Valor Alvo: cert_expiry < 7 days → Critical
Método Verificação: Certificate monitoring, alert test
Impacto se não atendido: Certificado expira sem aviso, serviço inacessível
Relacionado: RNF-SEC-072

RNF-OBS-200: Alert - Backup Failure

yaml
ID: RNF-OBS-200
Título: Alerta de falha de backup
Categoria: Observability
Prioridade: P0
Métrica: Alert rule
Valor Alvo: backup_success{job="rds"} == 0 → Critical
Método Verificação: CloudWatch Events → SNS → Alert
Impacto se não atendido: Backups falhando silenciosamente
Relacionado: RNF-COMP-165, DISASTER-RECOVERY.md

11. Resumo Executivo

11.1 Métricas Críticas (P0)

CategoriaRNF IDMétricaValor Alvo
PerformanceRNF-PERF-001Latência P50 GET≤ 50ms
PerformanceRNF-PERF-015LCP (Core Web Vitals)≤ 2.5s
ScalabilityRNF-SCAL-001Auto-scaling APIMin 3, Max 20
ScalabilityRNF-SCAL-019Throughput≥ 10k RPS
AvailabilityRNF-AVAIL-041SLA Production≥ 99.9%
AvailabilityRNF-AVAIL-043RTO≤ 60 min
AvailabilityRNF-AVAIL-044RPO≤ 15 min
SecurityRNF-SEC-052Password ComplexityMin 12 chars + rules
SecurityRNF-SEC-063RLS Enforcement100% tabelas
SecurityRNF-SEC-070TLS Version≥ TLS 1.3
MaintainabilityRNF-MAINT-084Unit Test Coverage≥ 80%
MaintainabilityRNF-MAINT-097ADRsPor decisão crítica
UsabilityRNF-USAB-106WCAG Compliance2.1 AA
ReliabilityRNF-REL-126Error Rate≤ 0.1%
ReliabilityRNF-REL-141MTTR≤ 30 min
ComplianceRNF-COMP-156LGPD - Data MinimizationApenas necessário
ComplianceRNF-COMP-163PCI-DSSZero card data storage
ObservabilityRNF-OBS-170Structured LogsJSON format
ObservabilityRNF-OBS-177Metrics CollectionPrometheus 15s

11.2 Contagem por Categoria

CategoriaTotal RNFsCríticos (P0)Altos (P1)Médios (P2)Baixos (P3)
Performance34201220
Scalability24141000
Availability119200
Security3224800
Maintainability2251250
Usability2013502
Reliability1612400
Portability148411
Compliance1412200
Observability31181120
TOTAL21813570103

11.3 Priorização de Implementação

Fase 1: MVP (Meses 1-3) - RNFs P0 Críticos

  • Performance: Latência < 100ms P95, Core Web Vitals
  • Security: RLS, Authentication, Encryption
  • Availability: Multi-AZ, Health Checks, RTO/RPO
  • Observability: Logging, Metrics básicas, Alertas críticos

Fase 2: Production-Ready (Meses 4-6) - RNFs P1

  • Scalability: Auto-scaling completo, Rate limiting
  • Maintainability: Test coverage 80%, CI/CD
  • Usability: WCAG 2.1 AA, i18n 3 locales
  • Compliance: LGPD full compliance

Fase 3: Otimização (Meses 7-9) - RNFs P2/P3

  • Performance: Bundle optimization, CDN
  • Portability: PWA, Offline capabilities
  • Observability: Tracing distribuído, Business metrics
  • Maintainability: ADRs completos, Runbooks

12. Verificação e Validação

12.1 Checklist de Aceitação

Cada RNF deve ter:

  • [ ] ID único e sequencial
  • [ ] Métrica mensurável objetiva
  • [ ] Valor alvo específico (não "rápido", mas "< 100ms")
  • [ ] Método de verificação definido
  • [ ] Ferramenta de medição especificada
  • [ ] Prioridade atribuída (P0/P1/P2/P3)
  • [ ] Impacto documentado se não atendido
  • [ ] Relacionamentos mapeados

12.2 Ferramentas de Monitoramento

RNF CategoriaFerramenta PrincipalFerramenta Secundária
PerformanceDatadog APMLighthouse CI
ScalabilityECS Metrics, k6CloudWatch
AvailabilityPingdom, StatusCakePagerDuty
SecuritySnyk, npm auditOWASP ZAP
MaintainabilityJest, ESLintSonarQube
UsabilityLighthouse, axeBrowser Testing
ReliabilityPrometheusSentry
PortabilityBrowserStackManual Testing
ComplianceManual AuditLegal Review
ObservabilityPrometheus+GrafanaJaeger, CloudWatch

12.3 Frequência de Validação

RNF CategoriaFrequênciaMétodo
PerformanceContínuoAPM, Synthetic monitoring
ScalabilityMensalLoad testing (k6)
AvailabilityContínuoUptime monitoring
SecuritySemanalVulnerability scan, Pentesting trimestral
MaintainabilityPor commitCI/CD pipeline
UsabilityPor releaseLighthouse audit
ReliabilityContínuoMetrics, Error tracking
PortabilityPor releaseCross-browser testing
ComplianceTrimestralAudit, Legal review
ObservabilityContínuoMetrics, Logs, Traces

13. Governança

13.1 Responsáveis

CategoriaOwnerRevisor
PerformanceBackend LeadDevOps Lead
ScalabilityDevOps LeadCTO
AvailabilityDevOps LeadCTO
SecuritySecurity EngineerCTO
MaintainabilityTech LeadEngineering Manager
UsabilityFrontend LeadProduct Manager
ReliabilitySREDevOps Lead
PortabilityFrontend LeadQA Lead
ComplianceLegal + DPOCTO
ObservabilityDevOps LeadSRE

13.2 Processo de Mudança

  1. Proposta de Novo RNF ou Mudança

    • Criar issue no GitHub com template RNF
    • Incluir: justificativa, impacto, custo, timeline
  2. Revisão Técnica

    • Owner da categoria revisa tecnicamente
    • Verifica viabilidade, métricas, métodos de verificação
  3. Aprovação

    • CTO aprova RNFs P0 e P1
    • Tech Lead aprova P2 e P3
  4. Documentação

    • Atualizar este documento (NON-FUNCTIONAL-REQUIREMENTS.md)
    • Criar/atualizar ADR se decisão arquitetural
  5. Implementação

    • Adicionar ao backlog/sprint
    • Implementar métrica de verificação ANTES da feature
    • Validar cumprimento do RNF
  6. Monitoramento Contínuo

    • Dashboards com métricas dos RNFs
    • Alertas quando RNF não cumprido

14. Referências

14.1 Documentos Relacionados

14.2 Standards e Frameworks

  • ISO/IEC 25010:2011 - Quality Model (categorias de qualidade)
  • WCAG 2.1 - Web Content Accessibility Guidelines
  • LGPD - Lei Geral de Proteção de Dados (Brasil)
  • PCI-DSS - Payment Card Industry Data Security Standard
  • OWASP Top 10 - Security vulnerabilities
  • DORA Metrics - DevOps Research and Assessment

14.3 Ferramentas Mencionadas

  • APM: Datadog, New Relic
  • Load Testing: k6, Gatling
  • Monitoring: Prometheus, Grafana, CloudWatch
  • Tracing: Jaeger, OpenTelemetry
  • Security: Snyk, OWASP ZAP, npm audit
  • Accessibility: Lighthouse, axe DevTools
  • Browser Testing: BrowserStack, Playwright

15. Changelog

v1.0.0 (2026-01-09)

  • Versão inicial com 218 requisitos não-funcionais
  • 10 categorias ISO 25010 completas
  • Métricas mensuráveis e métodos de verificação definidos
  • Priorização P0/P1/P2/P3 atribuída
  • Relacionamentos mapeados com arquitetura existente

Documento mantido por: Engenharia (Claude Opus 4.5)
Próxima revisão: 2026-04-09 (trimestral)
Status: Ativo e vinculante


"If you can't measure it, you can't improve it."
— Peter Drucker

"Quality is not an act, it is a habit."
— Aristotle