Event-Driven Architecture (EDA) — архитектурный стиль, при котором сервисы взаимодействуют через события, а не через прямые вызовы. Одно событие (OrderPlaced) может запустить несколько независимых обработчиков параллельно: отправку email, обновление склада, запись аналитики.
Преимущества
Слабая связанность — издатель события не знает о подписчиках
Масштабируемость — обработчики можно масштабировать независимо
Расширяемость — новый обработчик подключается без изменений у издателя
Компоненты
Producer — генерирует и публикует событие
Event Broker — маршрутизирует (Kafka, RabbitMQ)
Consumer — подписывается и обрабатывает
Сложности
Отладка: сложнее отследить поток выполнения
Eventual Consistency: состояние разных сервисов временно расходится
Гарантии доставки: at-least-once требует идемпотентных обработчиков