Карта точек входа (as-built)

Статус: current (as-built), сверено на commit 544d4e51. Целевой список публичных контрактов сервисов — в ../30-services/ (секции «Публичный контракт» каждого README). Этот документ фиксирует только то, что реально существует в коде: реальные тикеры, реальные HTTP-хендлеры, реальные CLI-точки входа. Расхождение с target-документом не исправляется здесь — сюда попадает только факт.

Как пользоваться таблицей

Каждая строка — это место, откуда управление входит в систему извне или по расписанию. Столбец «Символ (file:line)» — точная ссылка на код на момент сверки; если код с тех пор изменился, проверяйте актуальную строку/сигнатуру заново, прежде чем полагаться на неё.

Таблица заполняется по мере разбора слоёв. Сейчас закрыт только слой ingestion-core и путь Russvet; остальные слои (нормализация, матчинг, canonical-assignment, публичный API и т.д.) добавляются последующими задачами инициативы.

Точки входа

Точка входаТип (тикер/HTTP/CLI/Kafka)Символ (file:line)НазначениеСлой
supplier-sync bootпроцессmainbackend/cmd/supplier-sync/main.go:64Поднятие fx-приложения воркера ingestioningestion
per-supplier тикертикерregisterPerSupplierTickersbackend/cmd/supplier-sync/main.go:306По тикеру на каждого включённого поставщикаingestion
тик поставщикаcallbackrunSupplierTickbackend/cmd/supplier-sync/main.go:380Один тик: lease → router.RunTick → метрикаingestion
роутер пайплайновdispatchPipelineRouter.RunTickbackend/internal/core/ingestion/app/pipeline_router.go:68Выбор пайплайна по Capabilitiesingestion
bulk-пайплайнpipelineBulkSnapshotPipelineImpl.RunTickbackend/internal/core/ingestion/app/bulk_snapshot_pipeline.goBatch-снапшот (Russvet/ETM/IEK/Systeme)ingestion
loopback healthHTTPloopback :9091 /healthz /readyz /metricsbackend/cmd/supplier-sync/main.goТолько локально; публичного HTTP нетingestion

Явные отсутствия

  • POST /v1/jobs/fetch в supplier-sync не существует. Целевой README сервиса (../30-services/ingestion/README.md, секция «Публичный контракт → Вход») упоминает его как HTTP (internal) точку входа, но в коде supplier-sync нет di.HTTP() — HTTP-регистраторы каталога/офферов/нормализации регистрируются в di.GroupHTTPRegistrars, но группу никто не потребляет. Единственный HTTP в процессе — loopback :9091 со служебными /healthz, /readyz, /metrics.

Дальше

  • Обзор слоя ingestion, участники и use-case файлы: 10-ingestion/README.md.
  • Как читать раздел целиком: README.md.