Блог компании ЕМДЕВ https://www.emdev.ru/. Об интранете, интеграционных шинах, low/no-code и немного об ИИ
Справедливое замечание, и вы абсолютно правы, что эту «обратную сторону» нужно проговаривать.
Шина действительно приносит управляемость ценой новой компетенции: команда осваивает другой стек, новые практики мониторинга и проектирования интеграций. Поэтому в реальных проектах мы всегда рассматриваем внедрение шины как организационное изменение: с планом обучения, перераспределением ролей и пониманием, какие процессы окупят эти вложения, а не как «магический слой», который все решит сам по себе.
Для компаний среднего размера достаточно начать с двух узлов платформы и брокера + базовый мониторинг и алерты. Все остальное - кластерные СУБД, геораспределенность, сложные сценарии DR - уже история для энтерпрайза с особыми требованиями. Важно не усложнять архитектуру раньше времени, но и не запускать критичные процессы на одиночном узле без резервирования.
Согласны, в реальной жизни поток оплаты гораздо сложнее прямой цепочки «оплатил → обновили заказ».
Онлайн фрод, частичные возвраты, блокировки, отсроченные платежи, ручные проверки службы безопасности — все это добавляет ветвления и альтернативные сценарии. Именно здесь шина и событийная модель начинают играть свою настоящую роль:
1) Каждое важное состояние (успешная оплата, подозрение на фрод, частичный возврат, окончательное подтверждение, отмена по таймауту) оформляется как отдельное событие, а не как «особый случай» внутри одного вызова.
2) Разные системы подписываются только на те события, которые им нужны: 1С - на учетные операции, антифрод сервис - на подозрительные транзакции, аналитика - на полную ленту.
3) Логика обработки усложняется не за счет разрастания одного «монолитного» обмена 1С–CRM, а за счет добавления новых маршрутов и подписчиков в интеграционном слое.
То есть при усложнении процесса шина помогает не тем, что «упрощает» жизнь, а тем, что структурирует сложность - видно, какие шаги цепочки реализованы событиями; понятно, кто за какое состояние отвечает; легче добавлять новые ветки (например, отдельный маршрут для спорных платежей) без переписывания всего сценария.
Kafka действительно часто воспринимается как что то «из мира больших данных», т.е. стриминг логов, метрик, телеметрии. Но по сути это всего лишь устойчивый, масштабируемый механизм доставки событий. И когда на этот механизм «сажают» понятные бизнес сценарии вроде статусов заказов, он перестает быть чем то абстрактным и становится вполне прикладным инструментом.
В связке «CRM публикует → шина маршрутизирует → 1С подписывается» как раз хорошо видно, что Kafka не обязательно должна обслуживать терабайты потоков. Она может быть «шиной событий» для повседневных операций: оплаты, изменения статусов, обновления остатков, уведомления клиентов.
Дальше эту идею можно развивать - к тем же событиям подключать, например, витрину, WMS или систему аналитики, не дублировать интеграции, а просто добавлять новых подписчиков.
Если будет интерес, в отдельном материале можно собрать еще несколько «жизненных» кейсов использования Kafka именно для прикладных задач, а не только для классического стриминга больших данных.
Хороший вопрос и его обязательно стоит поднимать на старте проекта.
Если вкратце: отказоустойчивость шины обычно строится за счет кластеризации (несколько узлов платформы и брокера), резервирования критичных компонентов, вынесения хранилищ на отказоустойчивые СУБД и обязательного мониторинга с алертами по ключевым метрикам (доступность, задержки, очереди сообщений). Конкретная схема зависит от инфраструктуры заказчика, но в продовых контурах мы всегда закладываем именно кластерный, а не «одиночный» вариант интеграционного слоя.
Хороший и очень практичный вопрос. Короткий ответ: да, сочетать можно и в реальных проектах так часто и делают. Но важно понимать, какую роль играет каждый механизм.
Как сочетать шину и «классический» обмен 1С:
• Шина как внешний контур, 1С механизмы как внутренние
Часто шину используют для обмена между системами (CRM, витрины, WMS, внешние сервисы), а внутри самого контура 1С продолжают работать регламентированные задания, планы обмена, фоновые обработки. То есть шина не заменяет все, а становится «наружным интерфейсом» 1С.
• Постепенный переход, а не “режим рубильника”
На старте логично оставить часть обменов как есть (файлы, регламенты), а на шину выносить критичные и новые сценарии: онлайн оплаты, статусы заказов, синхронизацию с CRM. Это снижает риски и дает команде время освоить событийный подход.
• Шина как «обертка» над существующими механизмами
Иногда 1С физически продолжает читать/писать файлы или работать через регламентные задания, но уже не напрямую с другими системами, а через адаптер к шине. Для 1С это «все тот же обмен», а для архитектуры это шаг к более управляемой модели.
Когда имеет смысл максимально переходить к событиям:
• когда много требований к почти реальному времени (онлайн оплаты, склад, доставка);
• когда растет количество подключаемых систем и нужно избежать «паутинки» прямых связей;
• когда критична наблюдаемость (кто, когда и какие данные отправил/получил).
В таких случаях событийная модель дает больше гибкости и прозрачности. Но это не отменяет того, что переход обычно делается поэтапно, с гибридной схемой: часть обменов остается в привычных механизмах 1С, часть переносится на шину, а затем доля событийных сценариев постепенно растет.
Хороший вопрос и его обязательно стоит поднимать на старте проекта.
Если вкратце: отказоустойчивость шины обычно строится за счет кластеризации (несколько узлов платформы и брокера), резервирования критичных компонентов, вынесения хранилищ на отказоустойчивые СУБД и обязательного мониторинга с алертами по ключевым метрикам (доступность, задержки, очереди сообщений). Конкретная схема зависит от инфраструктуры заказчика, но в прод-контурах мы всегда закладываем именно кластерный, а не «одиночный» вариант интеграционного слоя.
Полностью согласны с вами. Причем сильная сторона Инкоманд в том что он вырос из конструктора интерфейсов в no-code, а значит не страдает болезнью большинства NLC-платформ - бедным, плохо редактируемым интерфейсом
В Инкоманд импорт идет не на уровне записей в конкретное приложение, записи импортируются в объектную модель. Т.е. используются стандартные механизмы платформы, главное – выполнить правильны мэппинг.
Подробнее об объектной модели вы можете почитать в нашем блоге https://incomand.ru/blog/-/blogs/objhhektih-incomand-7-4-kak-prevratitjh-korporativnihy-portal-v-konstruktor-prilozheniy
И как вишенка на торте пример «живой» синхронизации со списками Sharepoint https://incomand.ru/blog/-/blogs/sharepoint_incomand_sync
Вы все верно написали. Шина сама по себе не решает проблему надёжности и может превратиться в «красиво оформленную» точку отказа, если не продумать доставку событий end‑to‑end.
Чтобы этого не произошло мы прежде всего придерживаемся проработки архитектурных принципов:
- система‑источник должна фиксировать изменения и связанные с ними события у себя, чтобы при сбое шины их можно было безопасно дослать позже;
- принимающие системы должны спокойно переживать повторную доставку одного и того же события, не создавая дублей заказов и лишних операций;
- сама шина должна работать в отказоустойчивой конфигурации, с резервированием и понятной схемой повторных попыток.
В такой связке шина действительно убирает «паутинку» и не становится единой точкой отказа, а временный сбой приводит только к задержке доставки, а не к потере или удвоению заказов.