Create a FIFO queue with a name ending in .fifo and set ContentBasedDeduplication=true or supply MessageDeduplicationId on each send
Assign a MessageGroupId on every SendMessage call to define the ordering scope; messages in the same group are delivered in order
Use multiple MessageGroupId values to parallelize consumption; each group is processed by at most one consumer at a time
Set VisibilityTimeout long enough for your consumer to process and delete a message before it reappears
Poll with ReceiveMessage specifying a MaxNumberOfMessages up to 10 and a WaitTimeSeconds of up to 20 for long polling
Known gotchas
Deduplication window is 5 minutes; identical MessageDeduplicationId or identical body (with content-based dedup) within that window silently drops the duplicate
A single FIFO queue supports a limited throughput per second; if you need higher throughput, use high-throughput mode or fan out to multiple queues
If a consumer fails to delete a message within VisibilityTimeout, it reappears and blocks the entire MessageGroupId until it is processed or moved to the DLQ
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp