Skip to content

aggregation-service

Сервис отчётности и биллинга. Он не участвует в обработке платежа — транзакция проходит весь свой путь через ядро без его участия — а приходит в игру уже после, когда нужно превратить накопленные транзакции в цифры: выгрузку для 1С, статистику в личном кабинете мерчанта или экран в внутреннем BackOffice.

Стек: Node.js, TypeScript, NestJS.

Чего не делает

Не создаёт и не меняет транзакции. Это зона ядра. Сервис только читает то, что там уже случилось, — отсюда и название: он агрегирует, а не производит данные.

Не пишет зеркала в Postgres billing и ClickHouse. Их наполняет отдельный конвейер на Kafka, описанный в Где живут данные. aggregation-service — потребитель этих зеркал, а не их источник.

Входы

  • HTTP от 1С: GET /billing/excel — ежедневная выгрузка периодов, подробно разобрана на странице Биллинг.
  • HTTP от внутреннего BackOffice: поиск и фильтрация транзакций, обороты, комиссии, справочники, настройки гейтов.
  • HTTP от личного кабинета мерчанта: статистика, выгрузки, история операций.
  • Плановые задачи (schedule, Temporal) — периодические пересчёты и отложенные выгрузки.

Выходы

  • superpos-core по HTTP — за данными, которых нет в зеркалах.
  • api-gateway-pci — за операциями, требующими PCI-контура.

Хранилища

Сам сервис почти ничего не хранит — он читает три чужие базы:

  • MongoDB ядра — напрямую, для данных, которые ещё не успели попасть в зеркала или не реплицируются вовсе.
  • Postgres (aggregation-postgres) — то самое биллинговое зеркало, на котором строится выгрузка для 1С.
  • ClickHouse — аналитические витрины для отчётов и BackOffice.

Redis используется под собственные задачи и кэш, отдельной базы для этого нет.

Где используется

  • Биллинг — источник ежедневной выгрузки для 1С.
  • Внутренний BackOffice — основной поставщик данных для операционной команды.
  • Личный кабинет мерчанта — статистика и выгрузки для самого мерчанта.

Где искать

  • Репозиторий: smartpayments-dev/aggregation-service.
  • Инфраструктура и логи: карточка сервиса в описании прод-контура.
  • Публичная документация: сервис внутренний, наружу к мерчанту напрямую не смотрит — публичной документации нет.

Внутренняя база знаний. Нашли неточность — поправьте страницу или заведите вопрос в разделе «Открытые вопросы».