Skip to main content

Workflow Event Idempotency

Summary

The outbox enforces uniqueness for its event identifier, which prevents duplicate storage of the same integration-event record. It does not prevent duplicate publication or duplicate consumer effects.

Verified controls

  • Shared persistence defines a processed-integration-event ledger with a unique event identifier, but no Workflow consumer or ledger writer was found.
  • The five adjacent callback receivers tolerate repeated decisions by returning without reapplying an already-terminal source record.
  • No Workflow event deduplication handler, replay contract or consumer inbox is wired.

Consumers should therefore treat the integration event identifier as a deduplication key, but that is a design recommendation rather than a verified consumer contract.

Requires Confirmation

Consumer ownership, inbox retention, replay rules, duplicate-response behavior and callback deduplication service levels require confirmation.

Source References

  • microservices/src/shared-kernel/Outbox/OutboxMessage.cs
  • microservices/src/workflow-service/Infrastructure/WorkflowDbContext.cs
  • microservices/src/workflow-service/Infrastructure/Persistence.cs
  • microservices/src/leave-service/Api/LeaveEndpoints.cs
  • microservices/src/expense-service/Api/ExpenseEndpoints.cs
  • microservices/src/asset-service/Api/AssetEndpoints.cs
  • microservices/src/performance-service/Api/PerformanceEndpoints.cs
  • microservices/src/recruitment-service/Api/RecruitmentEndpoints.cs

See Also

Keywords

Workflow events, idempotency, deduplication.

Revision Information

  • Status: Draft
  • Last reviewed: 2026-07-20
  • Next review: 2026-10-20