Hiko Amane's Blog
Developer: SQS & SNS
SQS
Access Policy
- Cross-account access
- Allow S3 Events to send message
- Neither has service-linked roles
- Both have resource-based policies (access policies)
Settings
- Message Visibility Timeout: The invisibility time to other consumers after the message is polled by any consumer
- The consumer can call
ChangeMessageVisibility
API to change the visibility timeout for a specific message
- Dead Letter Queue
- Delay Queue
- Queue level delay
- Message level delay: set
DelaySeconds
parameter
- Polling Wait Time
- 1 ~ 20 second
- Long polling is better than short polling (reduce API calls, better latency)
- Queue level or API call level (use
ReceiveMessageWaitTimeSeconds
parameter)
Extended Client
- A pre-build SDK for application to send message larger than 256KB
- Use S3 under the hood
Important APIs
- CreateQueue
- DeleteQueue
- PurgeQueue: delete all the messages in the queue
- SendMessage (has Batch API)
- ReceiveMessage (
MaxNumberOfMessages
& ReceiveMessageWaitTimeSeconds
parameters)
- DeleteMessage (has Batch API)
- ChangeMessageVisibility (has Batch API)
FIFO De-duplication
- De-duplication interval is 5 minutes
- De-duplication methods
- Compare messages by SHA-256 hash
- Using Message De-duplication ID
FIFO Message Grouping
- Default FIFO queue only has one message group
- Messages in a message group are in order and only consumed by one consumer
- You can add message groups to consume message in parallel
- The message order between message groups is not guaranteed
SNS
Message Filtering
- Filter messages on different subscribers