Punter Vicky
Punter Vicky

Reputation: 17032

Fault Tolerant Clustered Queues - SQS

I would like to create SQS queues in 2 different AWS regions. Is there a way to setup synchronization between both queues? When data is read off a queue in either region , message must not be available for consumption. If one the region goes down , then consumer must start reading from the next message in the available region? Does AWS support this out of the box or are there any patterns available to support this use case?

Upvotes: 2

Views: 496

Answers (2)

Seth E
Seth E

Reputation: 1115

You can use Amazon SNS to fan out messages to multi SQS queues, even in multiple different regions. Details here: Sending Amazon SNS messages to an Amazon SQS queue or AWS Lambda function in a different Region.

However this results in duplicate messages across those regions, this does not satisfy your requirement

When data is read off a queue in either region , message must not be available for consumption

Upvotes: 0

John Rotenstein
John Rotenstein

Reputation: 270104

No, this is not a feature of Amazon SQS.

It would be quite difficult to implement because you cannot request a specific message off a queue. So, if a message is retrieved in one region, there is no way to delete that message in a different region. You would need to operate a database to keep track of the messages, which sort of defeats the whole purpose of the queue.

Amazon SQS is a multi-AZ service that can survive failure of an Availability Zone, but resides in a single region.

Upvotes: 3

Related Questions