Skip to main content

Helpdesk Event Ordering

Verified behavior

The Helpdesk outbox query orders eligible rows globally by OccurredAtUtc before taking a batch. Events carry an occurrence timestamp but no ticket sequence, aggregate version, partition key or expected predecessor.

The shared processor iterates the returned batch sequentially. That local loop does not establish a durable end-to-end ordering guarantee: concurrent processors are not prevented by a row claim, timestamps can tie, broker routing is not ticket-partitioned in the contract, and redelivery can reorder observations.

Consumer guidance

Consumers should treat each event as a snapshot notification, deduplicate by EventId, and avoid relying on receipt order for state reconstruction. A per-ticket ordering policy is Not implemented.

Source References

  • microservices/src/helpdesk-service/Infrastructure/Persistence.cs
  • microservices/src/contracts/Events/HelpdeskLifecycleEvents.cs
  • microservices/src/shared-kernel/Messaging/OutboxProcessor.cs

Revision Information

Draft source-backed documentation reviewed on 2026-07-20; next quarterly review is 2026-10-20.