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

Событийная архитектура

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

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

Введение

Событийная архитектура (Event-Driven Architecture, EDA) – архитектурный паттерн, при котором взаимодействие между компонентами системы строится вокруг генерации, передачи и обработки событий. Событие – это неизменяемый факт о произошедшем изменении состояния: «заказ создан», «платёж подтверждён», «статус изменён». Производители событий (producers) публикуют их в брокер, а потребители (consumers) подписываются на интересующие типы событий и реагируют на них асинхронно.

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

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

Концепция событийно-управляемых систем восходит к реактивному программированию и паттернам обмена сообщениями, описанным в книге «Enterprise Integration Patterns» Хогпе и Вульфа (2003). Практическим воплощением стали Message-Oriented Middleware (MOM) платформы – IBM MQ, ActiveMQ, RabbitMQ.

Настоящий ренессанс EDA случился с появлением Apache Kafka в 2011 году (LinkedIn). Kafka позволила обрабатывать миллионы событий в секунду с постоянным хранением лога, что открыло новые применения: event sourcing, CQRS, stream processing. Параллельно развивались паттерны Event Sourcing и CQRS (Greg Young, 2010), а AWS, Google, Azure предложили облачные event streaming сервисы.

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

Основные компоненты EDA:

  • Событие (Event) – неизменяемая запись о факте: содержит тип события, временну́ю метку, идентификатор источника и данные.
  • Производитель (Producer/Publisher) – компонент, генерирующий события и публикующий их в брокер.
  • Брокер сообщений (Message Broker) – промежуточный слой хранения и маршрутизации событий (Apache Kafka, RabbitMQ, AWS SQS/SNS, Pulsar).
  • Потребитель (Consumer/Subscriber) – компонент, подписывающийся на события и реагирующий на них.

Популярные паттерны EDA: Event Sourcing (хранение не текущего состояния, а лога событий), CQRS (разделение команд и запросов), Saga (распределённые транзакции через события), Outbox Pattern (гарантированная публикация событий из транзакции).

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

  • Финтех и банки – обработка платёжных событий, антифрод в реальном времени, интеграция между микросервисами.
  • E-commerce – обработка заказов, уведомления, обновление складских остатков в реальном времени.
  • IoT и телеметрия – сбор и обработка потоков данных от устройств.
  • Логистика – отслеживание состояния грузов, уведомление участников цепочки.
  • Медиа и стриминг – персонализация, аналитика поведения пользователей в реальном времени.

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

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

Ограничения: сложность отладки асинхронных потоков, «эвентуальная консистентность» (данные могут быть временно рассинхронизированы), сложность управления порядком событий при партиционировании, overhead на инфраструктуру брокера.

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

Микросервисная архитектура часто использует EDA для асинхронного взаимодействия между сервисами. ESB реализует синхронную интеграцию, EDA – асинхронную; современные системы комбинируют оба подхода. Интеграционная шина и iPaaS могут работать в событийном режиме. Событие (процесс) в BPMN – аналогичная концепция на уровне моделирования бизнес-процессов.

Понятия из глоссария Цифрового маркетплейса, которые часто встречаются вместе с термином «Событийная архитектура».

Платформы класса «Событийная архитектура»

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

Tarantool Data Grid

Tarantool Data Grid

Данные и аналитика
Tarantool — высокопроизводительная СУБД с поддержкой in-memory и дискового хранения данных, обеспечивающая ACI...
Цена по запросу
★ 4.8
Подробнее →
MasterOPC

MasterOPC

Производство и логистика
MasterOPC — российская коммуникационная платформа для промышленной автоматизации, реализующая протоколы OPC UA...
Цена по запросу
★ 4.8
Подробнее →
БАРС.Мониторинг-ЖКХ

БАРС.Мониторинг-ЖКХ

Данные и аналитика
Информационно-аналитическая система для мониторинга и управления жилищно-коммунальным хозяйством на региональн...
Цена по запросу
★ 5.0
Подробнее →
МА

Маршрутизатор

Данные и аналитика
Яндекс.Маршрутизация (Router API) — программный интерфейс для построения оптимальных маршрутов, расчёта времен...
Цена по запросу
Подробнее →

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

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

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

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

Частые вопросы про Событийная архитектура

Что такое событийная архитектура?

Архитектурный паттерн, где компоненты взаимодействуют через публикацию и обработку событий в брокерах. Производители не знают потребителей – связь асинхронная и слабая.

Что такое Apache Kafka?

Распределённый брокер сообщений и платформа потоковой обработки данных. Хранит события в упорядоченном, неизменяемом логе, поддерживает миллионы событий в секунду.

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

При синхронной интеграции вызывающий компонент ждёт ответа. В EDA производитель публикует событие и не ждёт – потребитель обрабатывает его независимо и асинхронно.

Что такое Event Sourcing?

Паттерн, при котором состояние системы хранится не в виде текущих значений, а в виде неизменяемого лога всех произошедших событий. Позволяет воспроизводить историю.

Когда стоит применять EDA?

При высоконагруженных системах, требующих масштабируемости, при интеграции множества слабо связанных компонентов, при необходимости обработки данных в реальном времени.