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.