# Новизна имени секции выводится из журнала, а не хранится реестром - **Дата:** 2026-08-04 - **Источник:** openspec/changes/archive/2026-08-04-aktivnaya-proverka-novyh-sekcij/design.md ## Решение Признак «имя непокрытой секции встречено впервые» **не хранится**: он считается запросом к журналу — «встречалось ли имя в доставках, стоящих строго раньше этой по паре `(received_at, id)`». Реестр-таблица по образцу `category_value` — очевидный ответ на тот же вопрос, уже применённый в этом проекте, — отвергнут. ## Почему Цитата из источника: > Форма ответа взята у `category_value` — «когда имя встретилось впервые по > журналу», — а носитель другой: факт уже лежит в `delivery.uncovered_sections`. > Реестр здесь не добавляет ни одного сведения, он кэш запроса, а запрос идёт > считанные разы за жизнь имени. И там же, о цене реестра: > Компромисс: вторая копия факта, обязанная сходиться с колонкой при каждой > пересборке, плюс миграция и новая единица хранения витрины (а значит и > отпечатка). Ноль новых сведений: имя выводимо из журнала. Третья рассмотренная форма — множество виденных имён в памяти процесса — отвергнута по инварианту «хранилище есть свёртка по журналу»: состояние стало бы функцией жизни процесса, и живой приём разошёлся бы с пересборкой в том, что считает первой встречей. ## Чем платим Ценой названы три вещи, и все они следствия выбранного носителя: - **проход по журналу** на каждой доставке с непокрытыми секциями. Измерено на синтетическом журнале годового объёма: у секции, приезжающей давно, ранний выход даёт десятки микросекунд, у появившейся только что — около 52 мс на доставку, пока её не покроет отдельная задача; - **границы носителя наследуются целиком**: имя, вытесненное границей списка в 32 имени, события не даёт вовсе; пересборка заполняет колонку заново и только по сохранившимся телам; покрытая разбором секция уходит из перечня; - **история не переживает удаления тел.** Ретеншен, срезающий архив, унесёт с собой и записи о непокрытых секциях за те же периоды. ## Когда пересматривать Последнее и есть условие пересмотра, названное заранее: **задаче ретеншена архива реестр понадобится** — именно затем, чтобы история пережила удаление тел, и тогда это уже другая цена, а не вторая копия факта. Запрет реестра в спеке `uncovered-sections` — решение этого изменения, а не запрет навсегда.