Skip to content

SyncNetworksCatalog

Purpose

Сливает данные по сетям из нескольких upstream источников и поддерживает актуальность networks_catalog + связанных таблиц.

Код: internal/worker/activities/sync_networks_catalog.go

Input / Output

Input (models.SyncNetworksCatalogInput): - force_full_refresh - soft_delete_grace_days - metrics_required

Output (models.SyncNetworksCatalogResult): - processed, inserted, updated, deactivated - metrics_updated, metrics_stale - errors[], has_errors

External Dependencies

  • APIs: CoinGecko /asset_platforms, chainid /chains.json, DefiLlama /v2/chains
  • DB: networks_catalog, network_identifiers, network_endpoints, network_metrics_snapshots

Idempotency

  • Upsert модель с soft-deactivate stale записей.
  • Повторные запуски детерминированы по ключам сети/идентификаторов/endpoint-ов.

Error Taxonomy

  • database pool is not initialized
  • upstream fetch/decode ошибки
  • SQL upsert/deactivate/commit ошибки
  • metrics_required=true but no metrics were updated

Callers

Observability

  • Логи: Starting networks catalog sync, Networks catalog sync completed