Likelihood to Recommend
Amazon SQS is great for decoupling micro-services. Decoupling services can result in smaller services that are easier to understand and independently deployable, improving developer velocity. It is also easy to scale tiers independently. SQS is especially great if message order and exactly-once processing are not essential. If you have these requirements, you can still try FIFO queues, but their throughput is limited.
- SQS is reliable and fully managed. Our engineers do not have to worry about running RabbitMQ.
- SQS is very inexpensive.
- SQS allows data to be encrypted in transit, which may be required for compliance in some products.
- FIFO queues provide exactly-once processing.
- Lambda integration is lacking. It would be great if enqueueing a message could trigger a Lambda function. Today, Lambda functions can be invoked periodically by CloudWatch and poll SQS for messages.
- FIFO queue throughput is limited to ~300 messages/second. This was not a problem for us, but it may be for larger organizations.
- Delay queues can be great for implementing notification features, but the maximum delay period is too short.
The most comparable products are RabbitMQ, and perhaps ActiveMQ. Until recently, AWS did not offer a managed ActiveMQ product. Running RabbitMQ will never be to my team's competitive advantage; we wanted a managed service.
Return on Investment
- A positive impact is that our engineers can focus on features instead of configuring and running a queue.
- We've never worried about the reliability of SQS.
- Testing systems end-to-end can be more difficult, particularly if you don't want to use a live SQS queue.
Premium Consulting/Integration Services—
Entry-level set up fee?