advanced

Event-driven architecture

Публикуйте facts о completed changes, чтобы producers и consumers развивались с loose coupling, eventual consistency и explicit replay semantics.

Event-driven architecture публикует факты о завершённых изменениях для loose coupling producers и consumers. Даёт масштабирование реакций, audit и интеграции, но приносит eventual consistency, duplicate delivery и проблемы порядка. Явные схемы, идемпотентные consumers и dead-letter handling.

На интервью: events vs commands vs синхронный REST. Outbox, replay, poison messages.

Типовые ошибки: chatty streams без бизнес-смысла; нет versioning consumers; message bus как database.

Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.

Чеклист:

  • Events в прошедшем времени о бизнес-фактах.
  • Идемпотентные consumers с deduplication keys.
  • Schema registry или contract tests для payload.
  • Observability lag, DLQ и replay.