Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Title: Escrow observability: SLA monitor + dispute indexer as separate services Status: draft Owner: backend/ops Date: 2026-01-18

Context:

  • Эскроу требует детерминированных SLA таймеров и поискового слоя по спорам.
  • Нужны быстрые алерты и разбор спорных сделок без ручного просмотра логов.
  • Сервисы должны оставаться read-only к цепи, без приватных ключей.

Decision:

  • Заводим два микросервиса: on-chain SLA monitor и dispute event indexer, каждый как отдельный Deployment (1 pod) с managed Postgres.
  • Доступ к цепи только через rpc-gateway-rotator (кворум RPC, без прямых публичных endpoint).
  • Оба сервиса обязательны к прод-защите: /health, /ready, /metrics, алерты по ingest lag, retries с backoff.
  • Конфиги (chains/contracts/webhooks/slack) — только через файлы/секреты, без перекомпиляции; hot-reload допускается.
  • Стейт восстанавливаемый: реплей из цепи + БД; никаких локальных томов.

Consequences:

  • SLA-события и споры становятся наблюдаемыми и алертируемыми без изменений смарт-контрактов.
  • Один источник RPC-правды (gateway) снижает инконсисентность (флап рпс) обоих сервисов.
  • Managed БД упрощает бэкап и обновления, но требует сетевых правил к кластеру.
  • Операции получают /metrics для Grafana/alertmanager; саппорт — быстрый поиск и свежие таймеры.

Next:

  • Закрепить владельцев сервисов (oncall) и SLO: ingest lag, alert latency, search latency.
  • Задать дефолтные конфиги chains/contracts и мок-каналы алертов для dev.
  • Подготовить CI job: сборка образов + k8s deploy манифесты (см. deploy-sla-monitor-dispute-indexer.md).