Files
orchestrator/docs/work-items/ORCH-113/07-infra-requirements.md

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.md TR-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.