Transactional capture with later delivery
Context
Committed changes can matter to downstream work, but subscriber availability must not block a save.
Decision
Supported record and link mutations commit their audit, history and event fact together; destination delivery follows asynchronously through the outbox and queue with at-least-once retries.
Alternatives Considered
Sending queue messages during persistence: Queue acceptance cannot roll back with a failed database transaction. Calling subscribers synchronously: Slow or failing destinations would make ordinary record saving depend on external availability. Guaranteeing exactly-once delivery: The queue contract permits repetition, so destinations must deduplicate event identities.
Consequences
Supported event facts cannot outlive rollback of their originating mutation. Changes outside the declared event content produce no event. A missed nudge waits for a successful scheduled dispatch rather than imposing a hard deadline. No-destination work leaves delivery and its unreferenced fact can age out after ninety days.