Термин · Глоссарий B2B-ПО

Event-driven Architecture (Event-driven Architecture)

Event-driven Architecture (EDA) – архитектурный стиль, при котором компоненты системы взаимодействуют путём производства, обнаружения и потребления событий. Обеспечивает слабую связанность сервисов и асинхронную обработку данных в реальном времени.

Буква «E» В категориях: 3 Платформ: 6+

Введение

Event-driven Architecture (EDA) – архитектурный стиль, при котором взаимодействие между компонентами системы строится через события. Компонент-производитель (producer) публикует событие – факт того, что что-то произошло (например, «заказ создан», «платёж прошёл»). Компоненты-потребители (consumers) подписываются на события и реагируют независимо друг от друга.

EDA обеспечивает слабую связанность (loose coupling): producer не знает о consumers и не ждёт их ответа. Это принципиально отличает EDA от синхронного REST-взаимодействия.

История и контекст

Событийные модели существуют со времён GUI-систем (очереди событий мыши и клавиатуры), но как архитектурный паттерн для распределённых систем EDA получила широкое распространение с появлением систем потоковой передачи данных. Apache Kafka (создан в LinkedIn в 2011 году, открыт в 2012-м) стал де-факто стандартом для high-throughput event streaming. RabbitMQ, Amazon SNS/SQS, Azure Service Bus – другие популярные брокеры событий.

В контексте микросервисной архитектуры EDA решает проблему распределённых транзакций через паттерн Saga и обеспечивает интеграцию сервисов без тесного coupling.

Как это работает

Ключевые элементы EDA:

  • Event – неизменяемый факт из прошлого (JSON/Avro/Protobuf), содержащий payload и метаданные;
  • Event broker – промежуточный компонент (Kafka, RabbitMQ), доставляющий события от producer к consumer;
  • Producer – сервис, публикующий события при изменении состояния;
  • Consumer – сервис, подписывающийся на топик/очередь и обрабатывающий события.

Паттерны взаимодействия: Publish/Subscribe (один producer – много consumers), Event Queue (один consumer за раз), Event Stream (непрерывный поток с сохранением истории в Kafka).

EDA и CQRS/Event Sourcing

EDA часто применяется совместно с CQRS и Event Sourcing: команды изменяют состояние и публикуют события, которые применяются к read-моделям. Это позволяет строить независимо масштабируемые проекции данных.

Где применяется

  • Микросервисные системы – интеграция сервисов без прямых HTTP-вызовов;
  • Финтех – события транзакций, антифрод в реальном времени;
  • IoT и IIoT – потоки телеметрии с тысяч датчиков;
  • E-commerce – обработка заказов, уведомления, аналитика поведения;
  • Аналитические пайплайны – ETL в реальном времени через Kafka Streams.

Преимущества и ограничения

Преимущества: слабая связанность сервисов, возможность добавлять новых consumers без изменения producer, масштабируемость, обработка данных в реальном времени, аудит-лог событий.

Ограничения: eventual consistency вместо строгой согласованности, сложность отладки (нет единой точки наблюдения), трудности с ordering гарантиями, сложные сценарии компенсирующих транзакций (Saga).

Связь с другими понятиями

CQRS и Event Sourcing – связанные паттерны, часто применяемые вместе с EDA. Очередь сообщений – базовый инфраструктурный компонент EDA. Микросервисы используют EDA для асинхронной интеграции. Apache Kafka – наиболее популярная платформа для event streaming. IIoT активно использует EDA для обработки телеметрии с промышленных датчиков.

Понятия из глоссария Цифрового маркетплейса, которые часто встречаются вместе с термином «Event-driven Architecture».

Платформы класса «Event-driven Architecture»

Решения из каталога Цифрового маркетплейса, относящиеся к этому классу ПО. Карточки ведут на полные карточки платформ с тарифами, обзорами и кейсами внедрения.

Онколинк

Онколинк

Разработка ПО
Платформа для управления онкологическими пациентами и координации медицинского обслуживания. Входит в Единый р...
Цена по запросу
Подробнее →
MO

Moon

Разработка ПО
Moon - platforma avtomatizirovannogo testirovaniya veb-prilozheniy v nastol'nykh i mobil'nykh brauzerakh po pr...
Цена по запросу
★ 4.2
Подробнее →
Модуль обмена C3D Converter

Модуль обмена C3D Converter

Разработка ПО
Модуль обмена C3D Converter отвечает за чтение и запись 3D-моделей в файлах нейтральных форматов и в собственн...
Цена по запросу
Подробнее →
JaCarta АРМ УЦ

JaCarta АРМ УЦ

Разработка ПО
ПО JaCarta АРМ УЦ - приложение, позволяющее генерировать ключевые пары с использованием встроенных криптографи...
Цена по запросу
★ 4.7
Подробнее →
АВ

Автограмма

Разработка ПО
Автограмма — визуальная среда разработки встраиваемых систем управления (No-Code/IDE) для промышленной автомат...
Цена по запросу
Подробнее →

Категории каталога

Разделы каталога Цифрового маркетплейса, в которые входят решения, использующие «Event-driven Architecture».

Где применяется

Отрасли, в которых «Event-driven Architecture» используется на практике. Откройте отраслевой раздел Цифрового маркетплейса, чтобы увидеть подходящие решения, кейсы и новости.

Частые вопросы про Event-driven Architecture

Чем EDA отличается от REST-интеграции?

В REST сервис синхронно ждёт ответа. В EDA producer публикует событие и не ждёт – consumer обработает его независимо. Это даёт слабую связанность и лучшую отказоустойчивость.

Что такое Apache Kafka и зачем он нужен в EDA?

Kafka – распределённый лог событий с гарантиями доставки и хранением истории. Обеспечивает high-throughput потоковую обработку событий, replay истории и параллельное потребление несколькими consumer groups.

Как EDA решает проблему распределённых транзакций?

Через паттерн Saga: каждый шаг публикует событие. При сбое следующего шага предыдущие компенсируют своё действие через компенсирующие события. Это eventual consistency, а не ACID.

Что такое Pub/Sub?

Publish/Subscribe – один из основных паттернов EDA: producer публикует событие в топик, а все подписчики (subscribers) независимо его получают. Один event – много обработчиков.

Какая разница между очередью сообщений и event stream?

Очередь (RabbitMQ) – событие читает один consumer и оно удаляется. Event stream (Kafka) – события хранятся в логе, несколько consumer groups читают независимо, можно replay с любой позиции.

Как связаны EDA и IoT?

IoT-устройства непрерывно генерируют телеметрию – естественный event stream. EDA-платформы (Kafka, MQTT-брокеры) принимают потоки с тысяч датчиков и обеспечивают их обработку в реальном времени.