Event-Driven
События, подписчики, гарантии доставки, outbox/inbox и наблюдаемость
Уроки курса (10)
- Event-Driven архитектура: что это и зачем она нужна - Делаем систему, где события связывают сервисы слабее, чем прямые вызовы
- Domain Event: «факт случился» - и это полезно - Как формулировать события и не путать их с командами
- Event Bus vs Message Broker: в чём разница - Когда хватает in-process событий, а когда нужен брокер (Kafka/RabbitMQ)
- Publisher/Subscriber: подписки без сюрпризов - Схемы топиков, ключи, фильтры и порядок обработки
- Гарантии доставки: at-most-once / at-least-once / exactly-once - Почему «ровно один раз» редко бывает бесплатным
- Idempotency: как не выполнить одно и то же дважды - Ключ идемпотентности, дедупликация и повторная доставка
- Outbox + Inbox: как связать БД и брокер без потерь - Шаблон, который спасает от «записали в БД, но событие не ушло»
- Saga: как оркестрировать распределённые процессы - Компенсации вместо транзакций на всю систему
- Наблюдаемость: трассировка, корреляция, метрики и алерты - Чтобы события не превращались в невидимый хаос
- Мини-проект: события в BackendStart (LessonCompleted → Achievements/Email/Analytics) - Собираем рабочую схему: домен → outbox → брокер → подписчики