740fd2d7bd
repository map zavoz
27 lines
1.3 KiB
Markdown
27 lines
1.3 KiB
Markdown
# 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`.
|