41 lines
3.4 KiB
Markdown
41 lines
3.4 KiB
Markdown
# 019. Часовой обход и онлайн-справочник инструментов
|
|
|
|
**Status:** Accepted. Заменяет request-driven, manual-refresh и
|
|
no-periodic-walk части [ADR 017](017-local-tbank-reads-and-background-sync.md)
|
|
и дополняет [ADR 018](018-minimal-runtime-coordination.md). Правило «справочные
|
|
сведения запрашиваются онлайн» дополнено исключением для сектора и бренда
|
|
актива позиции — [ADR
|
|
022](022-stored-instrument-classification.md).
|
|
|
|
## Decision
|
|
|
|
- Личные T-Bank данные текущего подключения обновляются владельцами источников
|
|
через durable hourly walk; его результат ограничен этой connection boundary.
|
|
Обычный GET и retry читают только сохранённый результат и не запускают
|
|
personal work.
|
|
- Только первое открытие неподтверждённого исторического интервала operations
|
|
и первого неоткрытого диапазона candles может получить соответственно этот
|
|
интервал или диапазон. Это не manual sync; повторное чтение не расширяет и не
|
|
запускает такую работу заново.
|
|
- Portfolio, operations, forecasts и события сохраняют собственные complete
|
|
результаты и время последнего успешного чтения. Результат ресурса
|
|
(freshness, completeness, `lastSuccessfulAt`, availability) независим от
|
|
resource-relevant последней часовой попытки: поздняя partial/failed попытка
|
|
не заменяет сохранённый complete result. При его отсутствии `data: null`.
|
|
- Detail, company, catalog search и ticker lookup получают ответ онлайн через
|
|
существующие integration clients. Их ошибки не заменяют сохранённые
|
|
финансовые данные или подписи snapshot.
|
|
- Старые справочные строки не являются источником актуальности и удаляются
|
|
только отдельной совместимой миграцией после проверки FK и свечей.
|
|
- Клиент повторяет открытые инвестиционные GET не чаще одного раза в 30 минут;
|
|
retry повторяет чтение и не создаёт screen sync work. Наблюдение последней
|
|
попытки, включая Accounts `sync`, не является командой.
|
|
|
|
## Consequences
|
|
|
|
Карточки инструментов зависят от доступности публичного upstream в момент
|
|
чтения. Финансовые экраны сохраняют последний успешный snapshot, а статус
|
|
последнего hourly walk показывается отдельно. OpenAPI backend остаётся
|
|
единственным исполняемым источником HTTP-контракта; frontend использует
|
|
опубликованный snapshot.
|