Skip to main content

Workflow Event Delivery Guarantees

Summary

The implementation provides durable local intent through the transactional outbox and repeated publication attempts, but does not establish a verified end-to-end exactly-once or strict at-least-once guarantee.

Delivery lifecycle

Verified properties

Canonical change and initial outbox record share a save. Failed records remain eligible. Transport messages request persistence. Broker connection recovery is enabled by shared transport.

Non-guarantees

No publisher confirmation, mandatory routing, consumer acknowledgement for Workflow contracts, atomic publish/status update, dead-letter path or end-to-end deduplication is verified. A successful publish followed by status-save failure can lead to duplicate publication.

Requires Confirmation

Required delivery semantics, publisher confirmation, dead-letter policy, consumer acknowledgement and duplicate tolerance require confirmation.

Source References

  • microservices/src/shared-kernel/Messaging/OutboxProcessor.cs
  • microservices/src/shared-kernel/Messaging/RabbitMqEventBus.cs
  • microservices/src/workflow-service/Infrastructure/Persistence.cs
  • microservices/src/workflow-service/Messaging/OutboxRelayHostedService.cs

See Also

Keywords

Workflow events, integration contracts, transactional outbox.

Revision Information

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