- Unlimited Throughput
- Best-Effort Ordering (might be random order)
At-Least-Once Delivery
- Messages are stored in multiple distributed SQS servers for redundancy and high availability
- The application should be designed to be idempotent
When to use
As long as your application can process messages that arrive more than once and out of order. Example:
- Decouple live user request from intensive background works: let users upload media while resizing or encoding it
- Allocate tasks to multiple worker nodes: process a high number of credit card validation requests
- Batch messages for future processing: schedule multiple entries to be added to a database
I wonder if this would be a problem at all.