2.7 KiB
2.7 KiB
work_item, stage, author_agent, status, created_at, model_used
| work_item | stage | author_agent | status | created_at | model_used |
|---|---|---|---|---|---|
| ORCH-113 | architecture | architect | proposed | 2026-06-15 | claude-opus-4-8 |
07 — Инфра-требования: ORCH-113 — reaper finalizer-liveness ownership
Work Item: ORCH-113 · Repo: orchestrator · Стадия: architecture
When-applicable / информационный. Топология не меняется; ниже — только конфиг и операционные инварианты, которые сопровождающий обязан удержать.
Изменения топологии
N/A. Ни новых сервисов/контейнеров, ни портов, ни томов, ни сетевых правил. Решение целиком внутри
процесса orchestrator (новый leaf + две врезки в существующие потоки monitor/reaper).
Новый конфиг (env)
| Ключ | Дефолт | Назначение |
|---|---|---|
ORCH_REAPER_FINALIZER_LIVENESS_ENABLED |
true |
Kill-switch. false → reaper байт-в-байт прежний (маркер пишется, но не консультируется). Откат фикса = установить false. |
Существующие reaper_finalize_grace_s (300) и reaper_max_running_s (5400) — не меняются.
.env.example пополнить новым ключом (дефолт = боевое значение, паттерн ORCH-101: пустой .env ⇒
прежнее поведение).
Операционные инварианты (сопровождение)
- Одно-процессная модель — несущий инвариант. Авторитетность in-memory реестра владения держится
на том, что монитор и reaper — потоки одного uvicorn-процесса. CMD/команда compose не должны
получать
uvicorn --workers>1без перевода сигнала в durable (см.10-tech-risks.mdTR-3, ADR-001). Сверено:Dockerfile:65,docker-compose.yml:36(prod),docker-compose.yml:123(staging) — без--workers. - Сквозной бюджет ORCH-065/109/110
reaper_max_running_s (5400) > Σ(deploy-staging gate-work)+grace (≈4460)остаётся в силе и фиксом не затрагивается (TR-4). - Self-hosting-страховка: обкатка — на staging (8501, изолированная БД) до прод-деплоя; деплой
орка — только через статус «Confirm Deploy». Фикс не рестартит прод и не пушит
main.