# 2. Контекст и границы ## Внутри системы - Один backend-контейнер (Django + Django Ninja API). - Доменные модули в `apps/*`, HTTP-слой в `api/v1/*`. - Хранение: реляционная БД (PostgreSQL в целевом окружении, SQLite по умолчанию локально). - Кэш/брокер: Redis/Valkey в целевом окружении, LocMem cache локально/в тестах. - Фоновые задачи: Celery worker/beat (guardrails, notifications, cleanup pending). ## Внешние акторы - Product client: вызывает `POST /api/v1/decide`, отправляет `POST /api/v1/events`. - Experimenter/Approver/Admin/Viewer: управляют экспериментами и смотрят результаты через API. - Каналы уведомлений: Telegram API и SMTP. - Система наблюдаемости: скрейпинг `/metrics`, чтение структурированных логов. ## Служебные контракты - `GET /health`: liveness. - `GET /ready`: readiness (cache, db, storage, celery ping). - `GET /metrics`: prometheus endpoint. ## Явная граница фактов Документация привязана к текущей реализации в `src/backend`.