3- AWS SQS
AWS SQS is a distributed & fault tolerant Queuing Technology; it provides point to point connectivity. It can be used with SNS to add publish / subscribe mechanism as well. Single message gets replicated across different SQS Servers.
High Level Architecture
SQS uses Visibility Timeout to prevent other consumers to receive the same message, during which a consumer has to Delete the message explicitly afrer processing it or the message will be available for others for reuse.
Evaluation Table - Details
|dequeue()||Available||ReceiveMessage() - possiblity with many available options for instance long & short polling.|
|acknowledge()||Possiblity||DeleteMessage() for positive acknowledge, by default message locked for Visibility Timeout period for other consumers.|
|subscribe()||Workaround||ReceiveMessage() - Using polling based mechanism, it can be implemented; but not exactly as true callback mechanism.|
|reject()||Possiblity||The messages are auto visible again for consumption, if explicit DeleteMessage() is not called before timeout, as explained above.|