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