41 lines
2.7 KiB
Markdown
41 lines
2.7 KiB
Markdown
---
|
|
work_item: ORCH-113
|
|
stage: architecture
|
|
author_agent: architect
|
|
status: proposed
|
|
created_at: 2026-06-15
|
|
model_used: 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`.
|
|
</content>
|