Guaranteeing Delivery of Messages with AWS SQS
[caption id="attachment_218" align="aligncenter" width="300"]
Delivery
Photo credit Ed Yourdon[/caption]
I wanted to scratch an itch and get feedback from the open-source community. So, I put together a little Github project that I like to call SQS-RetryQueue.
Amazon SQS can be utilized to guarantee delivery and processing of messages. This project serves the following purposes:
AWS SQS is priced by request. One of the goals should be to minimize costs.
Processing of messages can happen on either the server that sent the message or any other server subscribing to this queue. The goal is to begin processing messages as soon as possible.
Each receiver thread acts as follows:
Sending a message then involves the following:
I wanted to get this out of the way for some time. So, here. it is! Any feedback is greatly appreciated.
DeliveryPhoto credit Ed Yourdon[/caption]
I wanted to scratch an itch and get feedback from the open-source community. So, I put together a little Github project that I like to call SQS-RetryQueue.
Amazon SQS can be utilized to guarantee delivery and processing of messages. This project serves the following purposes:
- Demonstrate an example of using AWS SQS with Java to send and receive messages.
- Provide an algorithm for retrying failed deliveries.
- Provide an approach to keeping SQS costs to a minimum while maintaining real-time processing of messages.
- Seek feedback on the approach from the open-source community
AWS SQS is priced by request. One of the goals should be to minimize costs.
Processing of messages can happen on either the server that sent the message or any other server subscribing to this queue. The goal is to begin processing messages as soon as possible.
Each receiver thread acts as follows:
wait on the monitor object for up to visibilityTimeout
while there are messages on the queue:
receive message
try processing message
if processing was successful, delete the messageSending a message then involves the following:
send the message
notify all receivers waiting on the monitor objectI wanted to get this out of the way for some time. So, here. it is! Any feedback is greatly appreciated.