Как настроить публикацию событий онлайн-оплаты из CRM в Kafka через Entaxy ION - Entaxy
Как настроить публикацию событий онлайн-оплаты из CRM в Kafka через Entaxy ION
Онлайн‑оплата давно перестала быть отдельным «модулем» и стала критическим бизнес‑процессом, который должен прозрачно проходить сквозь CRM, платёжные шлюзы, учётные системы и аналитику. Для архитекторов и интеграторов это означает одно: события об оплате нужно надёжно фиксировать, нормализовать и доставлять в реальном времени во все заинтересованные системы, не превращая ландшафт в монолит из точечных интеграций.
В видеоинструкции «Работа с Apache Kafka в Entaxy ION» на практическом примере показано, как настроить такую событийную шину: CRM публикует результаты онлайн‑оплат в топик Kafka payment через Entaxy ION, а 1С потребляет эти сообщения и актуализирует состояние заказов. В этой статье мы разберём архитектурный подход из видео, структуру события оплаты, особенности интеграции с платёжными шлюзами, а также требования к надёжности и логированию, чтобы вы могли воспроизвести и адаптировать этот сценарий в своей инфраструктуре.
Контекст кейса: CRM → Kafka → 1С
В демонстрационном сценарии Kafka используется как распределённый брокер сообщений, через который обмениваются событиями две бизнес‑системы: CRM и 1С.
CRM выступает системой‑источником и публикует сообщения о результатах онлайн‑оплаты, полученных от платёжного шлюза, а 1С — системой‑получателем, которая читает эти события и обновляет состояние заказов в режиме реального времени.
Entaxy ION в этой архитектуре играет роль интеграционного слоя: он соединяет обе системы с Kafka и обеспечивает маршрутизацию, преобразование и надёжную доставку событий.
Такой подход позволяет выстроить событийную архитектуру вокруг онлайн‑оплаты, не «сращивая» CRM и 1С напрямую и сохраняя слабую связанность компонентов.
Архитектурная схема интеграции
Сценарий из видео можно описать следующим потоком:
-
CRM фиксирует результат онлайн‑оплаты (успешно / неуспешно, детали транзакции).
-
Entaxy ION через кастомный выходной коннектор формирует событие и публикует его в Kafka в топик
payment. -
Kafka хранит и доставляет события подписчикам; в примере — интеграционный маршрут для 1С.
-
Entaxy ION через входной коннектор для 1С читает сообщения из
paymentи передаёт их в 1С либо выводит в лог для отладки.
Оркестрация и маршруты реализованы на базе Apache Camel внутри Entaxy ION, а работа с Kafka обеспечивается компонентом camel‑kafka, который добавляется как отдельная фича.
Настройка Entaxy ION для работы с Kafka
Предварительные требования
Чтобы Entaxy ION мог публиковать и читать события из Kafka, в него должны быть установлены необходимые бандлы и активирована фича camel-kafka.
При отсутствии поддержки Kafka на уровне компонентов администратор устанавливает соответствующую фичу, после чего маршруты получают возможность работать с Kafka‑эндпоинтами.
Kafka в примере запускается в Docker‑контейнере, что удобно для стендов разработки и тестирования.
Это упрощает развёртывание брокера, не требуя отдельной инфраструктуры, и позволяет быстро воспроизводить стенды.
Профиль системы CRM и выходной коннектор
В Entaxy ION каждая внешняя система описывается профилем.
Для CRM создаётся профиль системы и к нему подключается выходной кастомный коннектор (OUT), который отвечает за публикацию событий в Kafka.
Ключевое место настройки — точка кастомизации Custom Route:
-
внутри неё создаётся Camel‑маршрут, который принимает сообщение от CRM (или от инициирующего компонента) и отправляет его в Kafka‑топик
payment; -
в качестве конечной точки используется Kafka‑компонент с параметрами подключения (адрес брокера, имя топика, дополнительные настройки надёжности).
Таким образом, CRM «видит» только вызов коннектора Entaxy ION, а логику отправки в Kafka (формат события, ключ, партиционирование, обработка ошибок) берёт на себя интеграционная платформа.
Профиль 1С и входной коннектор для чтения топика
Для 1С создаётся отдельный профиль системы, к которому подключается входной кастомный коннектор (IN).
Этот коннектор на уровне Custom Route настраивается на чтение сообщений из Kafka‑топика payment:
-
маршрут использует Kafka‑компонент как потребителя (consumer), подписываясь на топик;
-
полученные сообщения либо напрямую передаются в 1С, либо, как в видеоинструкции, выводятся в лог для демонстрации.
Такое разделение даёт возможность:
-
независимо развивать маршруты для CRM и 1С;
-
добавлять новых потребителей (например, DWH, antifraud, monitoring), просто создав новые входные коннекторы и маршруты, подписанные на
payment.
Топик payment и структура события
В демонстрационном кейсе используется единый топик Kafka — payment, в который CRM публикует события о результатах онлайн‑оплаты.
Топик выступает «шиной событий» для всех downstream‑систем, которым важен статус транзакций.
Структура события типично включает:
-
идентификатор заказа/платежа (orderId, paymentId);
-
статус транзакции (например,
SUCCESS,FAILED,PENDING); -
сумму и валюту;
-
идентификатор платёжного шлюза или канала;
-
временные метки (время инициации, время подтверждения);
-
технические поля (traceId/correlationId, версия схемы события).
Entaxy ION позволяет:
-
формировать сообщение в нужном формате (обычно JSON);
-
добавлять служебные заголовки Kafka (ключ, partition key) и Camel‑заголовки для дальнейшей маршрутизации;
-
реализовывать трансформации между внутренними моделями CRM и целевыми моделями события, используемыми в Kafka.
Важно заранее согласовать контракт события между командами CRM, 1С и другими потребителями, чтобы изменения схемы были управляемыми и обратсовместимыми.
Особенности интеграции с платёжными шлюзами
Онлайн‑оплата в CRM, как правило, реализуется через внешние платёжные шлюзы (банки, агрегаторы, эквайринговые сервисы).
CRM получает от шлюза callback/нотификацию о результатах оплаты и фиксирует их в своей модели данных.
Entaxy ION встраивается в этот процесс следующим образом:
-
CRM при получении ответа от платёжного шлюза инициирует вызов коннектора Entaxy ION (через REST, SOAP, очередь или другой доступный канал);
-
интеграционный маршрут в ION нормализует данные ответов различных шлюзов к единой событийной модели
PaymentResult; -
далее этот нормализованный результат публикуется в Kafka‑топик
payment.
Такой подход позволяет:
-
скрыть специфические форматы и протоколы платёжных шлюзов за унифицированным событием;
-
подключать новые шлюзы без изменений на стороне потребителей событий (1С, аналитика);
-
реализовать единые правила обработки ошибок, ретраев и логирования на уровне интеграционного слоя.
Требования к надёжности доставки
Для событий онлайн‑оплаты надёжность критична: потеря сообщения может привести к рассинхронизации статусов заказов между CRM, 1С и учётными системами.
На уровне Entaxy ION и Kafka применяются следующие практики:
-
использование подтверждённой записи в Kafka (acks, репликация, настройки durability);
-
конфигурация потребителей на гарантированное чтение и корректную обработку оффсетов (например, минимум «at-least-once» семантика);
-
обработка ошибок в Camel‑маршрутах: retry‑политики, dead‑letter‑очереди/топики для проблемных сообщений;
-
разделение топиков по назначению (например,
payment,payment-dlq,payment-audit) для упрощения сопровождения.
Entaxy ION, как российская интеграционная платформа, поддерживает работу в инфраструктуре, соответствующей требованиям регуляторов РФ к надёжности и отказоустойчивости, включая развёртывание в отечественных ЦОД и использование сертифицированных компонентов.
Требования к логированию и мониторингу
Для продакшн‑интеграций с платежами особенно важно детализированное логирование и мониторинг.
В рассматриваемом кейсе:
-
входной маршрут для 1С демонстрационно выводит события из топика
paymentв лог, что позволяет убедиться в корректности доставки; -
логирование можно расширить, добавив: traceId/correlationId, статусы обработки, время прохождения через маршрут.
Entaxy ION интегрируется с типовой стеком мониторинга (Prometheus, Grafana, Loki и др.), что позволяет:
-
наблюдать метрики сообщений (количество, задержки, ошибки) для коннекторов и маршрутов;
-
собирать и анализировать логи брокера (Artemis, Kafka) и самой интеграционной платформы;
-
настраивать алерты по SLA интеграций онлайн‑оплаты.
Это особенно важно для соответствия корпоративным политикам ИБ и требованиям российских регуляторов по журналированию операций, связанных с платежами.
Практическая дорожная карта внедрения
Опираясь на сценарий из видео, можно выделить последовательность шагов для команд архитекторов и интеграторов:
-
Определить доменную модель события онлайн‑оплаты (контракт между CRM, 1С и другими потребителями).
-
Настроить Kafka‑инфраструктуру (в том числе варианты отказоустойчивости и репликации).
-
Развернуть и сконфигурировать Entaxy ION с поддержкой
camel-kafka. -
Создать профиль CRM, настроить выходной кастомный коннектор и маршрут публикации в топик
payment. -
Создать профиль 1С, настроить входной коннектор и маршрут чтения из
paymentс последующей записью в 1С. -
Настроить логирование и мониторинг: трассировка маршрутов, метрики, алерты.
-
Провести нагрузочное и отказоустойчивое тестирование сценариев онлайн‑оплаты.
Мы используем cookie. Это позволяет нам анализировать взаимодействие посетителей с сайтом и делать его лучше.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie.
Подробнее вы можете ознакомиться с политикой обработки персональных данных, нажав кнопку "Читать ещё".