Guides
Idempotency
Send retries must not create duplicates. clientMessageId is unique per sender. Outbox and push jobs are unique on stable keys.
Send retries must not create duplicates.
- Public message ids are UUIDv7.
clientMessageIdis unique persenderId. A retry with the same id and a different command hash is rejected as a conflict.- Outbox publishes use
eventIdas the realtime idempotency key when the adapter supports it. - Push intents are unique on
(eventId, recipientUserId). Jobs are unique on(intentId, installationId). - Moderation jobs are keyed by job id. Completing a finished job is a no-op.
If a unique-constraint race happens on insert, the engine loads the existing message and returns it.
Duplicate jobs, duplicate events, duplicate push intents, and worker restarts must be safe.