Skip to content

eventAckStatusSchema

const eventAckStatusSchema: ZodEnum<{ acked: "acked"; deferred: "deferred"; refused: "refused"; rejected: "rejected"; }>

Defined in: packages/contracts/src/events.ts:89

The per-event verdict. Three of the four are TERMINAL — the client deletes the Outbox row:

  • acked — enqueued.
  • refused — the consent/entitlement gating hook said no.
  • rejected — a schema-invalid payload for a KNOWN Event stream, or an oversized payload. Given append-time validation and the backward-compatibility rule, this means a non-library caller or a broken consumer deployment — a bug, not a rollout.

deferred is NOT terminal: an Event stream the server does not (yet) know is ordinary deployment skew (a client rolled out ahead of its server), and deleting those events would be data loss on a normal path. Deferred rows stay in the Outbox, retry with backoff, and drain when the rollout completes.