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: ObservabilityEstrutura 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 RNFs1. 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-001RNF-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-002RNF-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.mdRNF-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.mdRNF-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-084RNF-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-085RNF-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-087RNF-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-091RNF-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-091RNF-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-0915.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-095RNF-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-101RNF-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-102RNF-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-106RNF-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-106RNF-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-106RNF-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-109RNF-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-106RNF-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-1066.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-113RNF-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-114RNF-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-113RNF-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-116RNF-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-1166.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-119RNF-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-119RNF-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-1216.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-106RNF-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-025RNF-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-1237. 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-128RNF-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-128RNF-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-128RNF-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-131RNF-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-026RNF-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-1297.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.mdRNF-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-136RNF-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-137RNF-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-1377.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-041RNF-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-142RNF-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-142RNF-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-142RNF-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-142RNF-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-1448.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-147RNF-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-146RNF-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-120RNF-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-1498.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-152RNF-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-153RNF-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)RNF-COMP-157: LGPD - Consent Management
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-156RNF-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-157RNF-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-158RNF-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-159RNF-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-1579.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-1639.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-082RNF-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-068RNF-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-15610. 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-170RNF-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-170RNF-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.mdRNF-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-170RNF-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-166RNF-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-15610.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-177RNF-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-126RNF-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-001RNF-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-028RNF-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-029RNF-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-177RNF-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-183RNF-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-183RNF-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-17710.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-187RNF-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-188RNF-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-187RNF-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-187RNF-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-19110.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.mdRNF-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-041RNF-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-126RNF-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-003RNF-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-029RNF-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-072RNF-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.md11. Resumo Executivo
11.1 Métricas Críticas (P0)
| Categoria | RNF ID | Métrica | Valor Alvo |
|---|---|---|---|
| Performance | RNF-PERF-001 | Latência P50 GET | ≤ 50ms |
| Performance | RNF-PERF-015 | LCP (Core Web Vitals) | ≤ 2.5s |
| Scalability | RNF-SCAL-001 | Auto-scaling API | Min 3, Max 20 |
| Scalability | RNF-SCAL-019 | Throughput | ≥ 10k RPS |
| Availability | RNF-AVAIL-041 | SLA Production | ≥ 99.9% |
| Availability | RNF-AVAIL-043 | RTO | ≤ 60 min |
| Availability | RNF-AVAIL-044 | RPO | ≤ 15 min |
| Security | RNF-SEC-052 | Password Complexity | Min 12 chars + rules |
| Security | RNF-SEC-063 | RLS Enforcement | 100% tabelas |
| Security | RNF-SEC-070 | TLS Version | ≥ TLS 1.3 |
| Maintainability | RNF-MAINT-084 | Unit Test Coverage | ≥ 80% |
| Maintainability | RNF-MAINT-097 | ADRs | Por decisão crítica |
| Usability | RNF-USAB-106 | WCAG Compliance | 2.1 AA |
| Reliability | RNF-REL-126 | Error Rate | ≤ 0.1% |
| Reliability | RNF-REL-141 | MTTR | ≤ 30 min |
| Compliance | RNF-COMP-156 | LGPD - Data Minimization | Apenas necessário |
| Compliance | RNF-COMP-163 | PCI-DSS | Zero card data storage |
| Observability | RNF-OBS-170 | Structured Logs | JSON format |
| Observability | RNF-OBS-177 | Metrics Collection | Prometheus 15s |
11.2 Contagem por Categoria
| Categoria | Total RNFs | Críticos (P0) | Altos (P1) | Médios (P2) | Baixos (P3) |
|---|---|---|---|---|---|
| Performance | 34 | 20 | 12 | 2 | 0 |
| Scalability | 24 | 14 | 10 | 0 | 0 |
| Availability | 11 | 9 | 2 | 0 | 0 |
| Security | 32 | 24 | 8 | 0 | 0 |
| Maintainability | 22 | 5 | 12 | 5 | 0 |
| Usability | 20 | 13 | 5 | 0 | 2 |
| Reliability | 16 | 12 | 4 | 0 | 0 |
| Portability | 14 | 8 | 4 | 1 | 1 |
| Compliance | 14 | 12 | 2 | 0 | 0 |
| Observability | 31 | 18 | 11 | 2 | 0 |
| TOTAL | 218 | 135 | 70 | 10 | 3 |
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 Categoria | Ferramenta Principal | Ferramenta Secundária |
|---|---|---|
| Performance | Datadog APM | Lighthouse CI |
| Scalability | ECS Metrics, k6 | CloudWatch |
| Availability | Pingdom, StatusCake | PagerDuty |
| Security | Snyk, npm audit | OWASP ZAP |
| Maintainability | Jest, ESLint | SonarQube |
| Usability | Lighthouse, axe | Browser Testing |
| Reliability | Prometheus | Sentry |
| Portability | BrowserStack | Manual Testing |
| Compliance | Manual Audit | Legal Review |
| Observability | Prometheus+Grafana | Jaeger, CloudWatch |
12.3 Frequência de Validação
| RNF Categoria | Frequência | Método |
|---|---|---|
| Performance | Contínuo | APM, Synthetic monitoring |
| Scalability | Mensal | Load testing (k6) |
| Availability | Contínuo | Uptime monitoring |
| Security | Semanal | Vulnerability scan, Pentesting trimestral |
| Maintainability | Por commit | CI/CD pipeline |
| Usability | Por release | Lighthouse audit |
| Reliability | Contínuo | Metrics, Error tracking |
| Portability | Por release | Cross-browser testing |
| Compliance | Trimestral | Audit, Legal review |
| Observability | Contínuo | Metrics, Logs, Traces |
13. Governança
13.1 Responsáveis
| Categoria | Owner | Revisor |
|---|---|---|
| Performance | Backend Lead | DevOps Lead |
| Scalability | DevOps Lead | CTO |
| Availability | DevOps Lead | CTO |
| Security | Security Engineer | CTO |
| Maintainability | Tech Lead | Engineering Manager |
| Usability | Frontend Lead | Product Manager |
| Reliability | SRE | DevOps Lead |
| Portability | Frontend Lead | QA Lead |
| Compliance | Legal + DPO | CTO |
| Observability | DevOps Lead | SRE |
13.2 Processo de Mudança
Proposta de Novo RNF ou Mudança
- Criar issue no GitHub com template RNF
- Incluir: justificativa, impacto, custo, timeline
Revisão Técnica
- Owner da categoria revisa tecnicamente
- Verifica viabilidade, métricas, métodos de verificação
Aprovação
- CTO aprova RNFs P0 e P1
- Tech Lead aprova P2 e P3
Documentação
- Atualizar este documento (NON-FUNCTIONAL-REQUIREMENTS.md)
- Criar/atualizar ADR se decisão arquitetural
Implementação
- Adicionar ao backlog/sprint
- Implementar métrica de verificação ANTES da feature
- Validar cumprimento do RNF
Monitoramento Contínuo
- Dashboards com métricas dos RNFs
- Alertas quando RNF não cumprido
14. Referências
14.1 Documentos Relacionados
- NFR.md - Overview de requisitos não-funcionais
- ARCHITECTURE.md - Arquitetura geral
- DISASTER-RECOVERY.md - Plano de DR
- RLS-POLICIES.md - Segurança multi-tenant
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