- роадмап отвечает «что умеет и чего не умеет»: PLAN.md → ROADMAP.md, четыре канонические секции, достигнутые звенья строками в «Готово», цели переформулированы возможностями приложения - задачи: род работы и «Затрагивает» набору спринта, 34 заголовка в форму действия, «Завершение» целей перечнями со ссылкой из каждой задачи - вычитка проходами task-form и doc-wording, починены протухшие факты в README, паспорте и review.md
35 lines
2.9 KiB
Markdown
35 lines
2.9 KiB
Markdown
# Сверять живую витрину с пересборкой
|
|
|
|
- **Секция:** Ядро
|
|
- **Зачем:** reindex печатает оба отпечатка, но сравнивать их некому — расхождение с журналом молчит
|
|
- **Теги:** goal:journal-and-rebuild
|
|
|
|
`healthlog reindex` печатает отпечаток собранной витрины и отпечаток рабочей —
|
|
то есть данные для сверки уже есть, и **сравнивать их некому**. Расхождение
|
|
живого состояния с тем, что даёт проигрывание журнала, сегодня обнаруживается
|
|
только тем, что кто-то вручную запустил пересборку и посмотрел на два числа.
|
|
|
|
Между тем расхождение — не гипотеза. Известный путь к нему записан блокером
|
|
[«Держать порядок журнала при конкурентных приёмах»](journal-order-on-ingest.md):
|
|
доставка, свёрнутая раньше своей предшественницы, уходит в `failed` навсегда, и
|
|
живая витрина расходится с пересборкой молча. Пока тот предел не закрыт, сверка
|
|
— единственный способ узнать, что он сработал.
|
|
|
|
Инвариант «состояние есть свёртка журнала» проверяем ровно этим: пересобрать в
|
|
отдельный файл (рабочая база не трогается — это уже так и устроено), сверить
|
|
отпечатки, расхождение — событие, которое видно. Прогон не бесплатный
|
|
(на квартальном журнале десятки минут), поэтому это регламент, а не фоновая
|
|
задача сервиса.
|
|
|
|
Развилка при взятии: кто запускает — `cron` на хосте рядом с деплоем или сам
|
|
сервис по расписанию. Первое честнее (пересборка уже сейчас команда, а не
|
|
режим сервиса), но требует места под второй файл базы.
|
|
|
|
Готово, когда расхождение витрины с пересборкой перестаёт зависеть от того,
|
|
догадался ли человек посмотреть.
|
|
|
|
Связано: `cmd/healthlog/reindex.go`, [наблюдаемость](stats-endpoint.md),
|
|
[деплой](deploy-rivendell.md).
|
|
|
|
Двигает строку «Завершения» цели: «Расхождение живой витрины с пересборкой замечает сервис, а не человек».
|