Перейти к содержанию

Нефункциональные требования

Производительность

ID Категория Требование Метрика
NFR-001 Latency Apply хода на сервере p95 < 300 ms
NFR-002 Real-time Доставка state update на веб и TG p95 < 1 s
NFR-003 Throughput Одновременные активные сессии (MVP) 500
NFR-004 Throughput Действий в секунду на game-runtime 100 RPS (MVP)
NFR-005 Media Рендер изображения поля p95 < 500 ms

Доступность и надёжность

ID Категория Требование Метрика
NFR-006 Availability Uptime платформы MVP 99.5% / месяц
NFR-007 Recovery RTO при падении realtime < 5 min
NFR-008 Recovery RPO audit log / PostgreSQL < 1 min
NFR-009 Resilience WebSocket reconnect без потери состояния Автоматический

Безопасность

ID Категория Требование
NFR-010 Security Соответствие OWASP API Security Top 10
NFR-011 Auth JWT TTL access 15 min, refresh 7 дней
NFR-012 Rate limit Join: 10 попыток / 5 min / IP
NFR-013 Transport TLS 1.2+ на всех внешних endpoint
NFR-014 Secrets Секреты только через env / vault, не в репо
NFR-015 Input Валидация Pydantic на всех API boundary

Масштабируемость

ID Категория Требование
NFR-016 Horizontal realtime-service и bot — горизонтальное масштабирование
NFR-017 Stateful Game hot state в Redis для multi-instance game-runtime
NFR-018 Events NATS JetStream для at-least-once доставки событий

UX и локализация

ID Категория Требование
NFR-019 i18n UI ru-RU в v1; строки вынесены для en
NFR-020 Accessibility Веб: контраст WCAG AA для игрового поля
NFR-021 TG limits Caption ≤ 1024 символов; fallback на текст без фото

Медиа

ID Категория Требование
NFR-022 Format PNG/WebP для поля; max 1 MB на кадр
NFR-023 CDN Публичные URL медиа с cache-control 60 s

Наблюдаемость

ID Категория Требование
NFR-024 Logging Structured JSON logs с trace_id
NFR-025 Metrics Prometheus: latency, WS connections, active sessions
NFR-026 Tracing OpenTelemetry между сервисами
NFR-027 Audit Immutable audit log ходов 90 дней

Сопровождаемость

ID Категория Требование
NFR-028 API OpenAPI 3.1 для всех публичных REST
NFR-029 Docs MkDocs актуален с каждым релизом Phase
NFR-030 Deploy Docker Compose для dev за < 15 min
NFR-031 Testing Плагин игры: unit + Gherkin acceptance

Совместимость

ID Категория Требование
NFR-032 Browser Chrome, Firefox, Safari последние 2 версии
NFR-033 Telegram aiogram 3.x; Bot API актуальная
NFR-034 Python 3.11+ для backend и bot