Files
docs/adr/019-hourly-reads-and-online-instrument-reference.md
T
ksv741 b95fc69493
Conventional commits / commits (pull_request) Successful in 10s
Docs security / security (pull_request) Successful in 6s
Docs verify / verify (pull_request) Successful in 10s
docs: describe concentration tab and stored instrument classification (WealthLedger/main#48)
2026-11-01 19:13:12 +03:00

3.4 KiB

019. Часовой обход и онлайн-справочник инструментов

Status: Accepted. Заменяет request-driven, manual-refresh и no-periodic-walk части ADR 017 и дополняет ADR 018. Правило «справочные сведения запрашиваются онлайн» дополнено исключением для сектора и бренда актива позиции — ADR 022.

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.