Skip to main content

Ordering and Correlation

Summary

The contracts expose correlation and causation slots, but Recruitment and Employee mappings leave them empty. No cross-service ordering guarantee is implemented.

Audience

Integration engineers, QA, support, architects, and reliability reviewers.

Reference Content

Correlation

  • Integration contracts carry event identity and optional correlation/causation values.
  • Current Recruitment and Employee mappings set correlation and causation empty.
  • Outbox records preserve correlation when present.
  • Notification can parse correlation and store related evidence.
  • Payroll's local envelope and Leave's projection path do not preserve a general correlation chain.

Ordering

Payroll and Leave configure single-message prefetch for their consumer instance and reject projection updates older than the last occurrence time. This reduces local stale overwrite but does not guarantee global ordering, publisher order, partition order or multi-instance order.

CandidateOnboarded and CandidateJoined are staged in the same Recruitment save, but their broker delivery order is not contractually guaranteed.

A business correlation strategy linking offer, onboarding, employee, projections and exit is Not implemented.

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/contracts/Events/IntegrationEvent.cs
  • microservices/src/recruitment-service/Infrastructure/RecruitmentDbContext.cs
  • microservices/src/employee-service/Infrastructure/EmployeeDbContext.cs
  • microservices/src/payroll-service/Messaging/PayrollReadModelConsumer.cs
  • microservices/src/leave-service/Messaging/EmployeeProfileConsumer.cs

See Also

Keywords

  • Onboarding events
  • Offboarding events
  • Integration contracts

Revision Information

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