В чем разница брокера сообщений и корпоративной шины интеграции
Что проверяют
Понимаете ли вы, где заканчивается транспорт и начинается интеграционная логика, и сможете ли сказать, в каком месте архитектуры будет жить преобразование данных. Следом обычно спрашивают: «Что бы вы выбрали для нашей задачи и где описали бы маппинг?»
Как отвечать
Короткая формула: брокер доставляет сообщения, а шина ещё и решает, что с ними делать по дороге.
- брокер сообщений (RabbitMQ, Apache Kafka, ActiveMQ Artemis): принимает сообщение, хранит его в очереди или топике и отдаёт получателям. Отвечает за маршрутизацию по ключу или теме, гарантии доставки, подтверждения и повторы. Содержимое сообщения ему безразлично;
- ESB (MuleSoft, IBM App Connect, WSO2, из отечественных DATAREON или «1С:Шина»): промежуточный слой, который вдобавок трансформирует форматы (XML в JSON), переводит протоколы (SOAP в REST, файл по FTP в вызов API), обогащает данные, маршрутизирует по содержимому и оркестрирует цепочки вызовов. Внутри шина часто сама работает поверх брокера.
Отсюда разница в подходе. Шина это умный центр: системы подключаются к ней как есть, а знание об их форматах собрано в одном месте. Брокер соответствует принципу «умные конечные точки, глупые трубы», который прижился в микросервисах: каждый сервис сам отвечает за свой контракт, транспорт просто возит сообщения.
Для аналитика важно следствие. С брокером вы описываете контракт сообщения (схема, AsyncAPI, семантика доставки) и согласуете его с обеими сторонами. С шиной появляется ещё один артефакт: спецификация маппинга и правил маршрутизации, которую реализует отдельная команда интеграции.
Где спотыкаются
Называют Kafka шиной. Kafka это распределённый журнал событий, трансформаций и перевода протоколов в самом брокере нет, для этого берут Kafka Connect, Kafka Streams или отдельный сервис.
Считают ESB мёртвой технологией. В банках, ритейле и госсекторе шины работают до сих пор, потому что связывают десятки старых систем, которые никто не станет переписывать под общий контракт.
Не видят цены централизации. Когда в шину уезжает бизнес-логика, любая доработка интеграции идёт через одну команду, и шина становится узким местом и единой точкой отказа.