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 ChangeMessageVisibilityAPI to change the visibility timeout for a specific message
 
- Dead Letter Queue
- Delay Queue
- Queue level delay
- Message level delay: set DelaySecondsparameter
 
- 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 ReceiveMessageWaitTimeSecondsparameter)
 
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&ReceiveMessageWaitTimeSecondsparameters)
- 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