Create an SNS FIFO topic (name must end in `.fifo`).
Create one or more SQS queues (FIFO or standard) and subscribe each queue to the SNS FIFO topic.
Configure the SQS queue as a Lambda event source mapping via the Lambda console or `CreateEventSourceMapping` API, setting the batch size and other trigger parameters.
Grant the SNS topic permission to send messages to the SQS queue (add a queue access-policy statement with `sqs:SendMessage` and a condition on the topic ARN).
Deploy your Lambda function; it will be invoked by SQS with batches of SNS-wrapped message records.
Known gotchas
SNS FIFO topics do NOT support direct Lambda, email, SMS, or HTTP/S subscriptions — only SQS queues can be direct subscribers; Lambda must consume via an SQS intermediary.
If strict FIFO ordering must be preserved end-to-end, use an SQS FIFO queue as the intermediary and set `MessageGroupId` consistently; a standard SQS queue provides at-least-once delivery without ordering guarantees.
DLQ configuration should be set on the SQS queue (not on the SNS topic) so that unprocessable messages are captured before Lambda discards them.
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