Skip to main content

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.

See Also​

Keywords​

  • Event-driven integration
  • Producer consumer
  • Inbox ledger

Revision Information​

  • Last reviewed: 2026-07-14
  • Owner: architecture-team
  • Status: Draft