fifo_group — per-key ordering
Messages with the samefifo_group are delivered strictly in the order they
were enqueued. Across different groups, delivery is concurrent.
user-42 messages serialize. user-43 messages are independent.
dedupe_id — SQS-style dedup
Within afifo_group, a second send with the same dedupe_id inside 5
minutes is rejected. Server returns 200 with deduped: true.
Constraints
dedupe_idrequiresfifo_group. Otherwise 400.dedupe_id+delay→ 400. Pick one.- Just want retry safety? Use
Idempotency-Keyinstead — 24h window, no fifo_group required.
Idempotency-Key vs dedupe_id
| Feature | Idempotency-Key | dedupe_id |
|---|---|---|
| Window | 24 h | 5 min |
| Needs fifo_group | no | yes |
| Works with delay | yes | no |
| Semantics | SDK retry safety | Producer-side dedup per business key |
Performance notes
- FIFO groups don’t slow you down — different groups still fan out across all consumers.
- A single hot
fifo_groupIS serialized on the consumer side. Ifuser-42ships 10,000 messages in a minute, they run one-at-a-time.