Messaging and Events
Summary
HR Suit uses RabbitMQ topic-based messaging and shared integration-event contracts to propagate selected domain changes between independently owned application boundaries.
Audience
- Developers and QA engineers
- DevOps engineers
- Implementation partners
- Solution architects
Overview
Shared contracts provide a common event envelope with identity, timing, correlation, tenancy, source, and schema-version metadata. Producers persist eligible events through a transactional outbox pattern. Relay workers publish them asynchronously, and consumers use local idempotency ledgers before updating owned data or read models.
Event publishing sequence
This sequence describes the established pattern. Relay coverage and event-driven adoption vary across services during the transition.
Producer and consumer overview
Notification dispatch consumes selected events to create notification work. The integration boundary can route selected events to configured downstreams and records retry or dead-letter outcomes. Exact exchanges, queues, routing keys, event lists, and downstream addresses are excluded from this public overview.
Delivery characteristics
- Publication and consumption are asynchronous.
- Outbox processing reduces the gap between a committed domain change and event publication.
- Consumer ledgers support idempotency when messages are delivered more than once.
- Schema-version metadata supports contract evolution.
- Retry and dead-letter handling preserve failure outcomes for later operational review.
- Read models intentionally duplicate selected data for local query or processing needs.
Related Articles
See Also
Keywords
- Event-driven integration
- Producer consumer
- Inbox ledger
Revision Information
- Last reviewed: 2026-07-14
- Owner: architecture-team
- Status: Draft