Skip to main content

Publishing and Outbox

Summary

Recruitment and Employee stage mapped contracts in the same local save as aggregate changes. Only Recruitment registers a hosted relay in the inspected startup code.

Audience

Backend engineers, SRE/operations reviewers, integration engineers, QA, and architects.

Reference Content

Outbox structure

The shared entity tracks message/event identity, event type, serialized content, occurrence and processing time, status, retry count, failure detail, optional correlation/tenant metadata and source. Sensitive serialized content is not reproduced.

Save boundary

Domain-event mapping occurs before the owning EF save, so aggregate changes and newly staged outbox entries share the local transaction.

Relay status

  • Recruitment: outbox store, shared processor and hosted relay are registered.
  • Employee: outbox store and processor are registered, but no Employee hosted relay registration was found.
  • Compatibility: its integration outbox is used for Expense events, not onboarding/offboarding.
  • Cleanup, maximum retry, dead-lettering and replay tooling were not found.

Requires confirmation

Unless explicitly confirmed above, live delivery, consumer deployment, replay, reconciliation, retention, contract governance, monitoring and production ownership require confirmation.

Source References

  • microservices/src/shared-kernel/Outbox/OutboxMessage.cs
  • microservices/src/shared-kernel/Outbox/IntegrationEventJsonSerializer.cs
  • microservices/src/shared-kernel/Messaging/OutboxProcessor.cs
  • microservices/src/recruitment-service/Messaging/OutboxRelayHostedService.cs
  • microservices/src/employee-service/Program.cs

See Also

Keywords

  • Onboarding events
  • Offboarding events
  • Integration contracts

Revision Information

  • Status: Draft
  • Last reviewed: 2026-07-20
  • Review cycle: Quarterly