Niketh Sudhakaran
Niketh Sudhakaran

Reputation: 514

Resilience with SQS queue

We are trying to work on a Live - DR model for SQS queue.

We have two different account in AWS:

  1. eu-west (Account no 1234)
  2. us-east (Account no 4567)

Our application resides in both account (ACTIVE - PASSIVE).

There is a Lambda trigger on each SQS.

The problem we might face here is: Both SQS queues will process events since it subscribes to the same SNS topic. And since it is connected to a Lambda function, both will process events.

I don't want this to happen. I want only one pair of SQS and Lambda functions working at a time - either EU-WEST or US-EAST. I know this can be achieved by removing the Lambda trigger on the inactive region.

Just looking for a better approach.

Upvotes: 1

Views: 1506

Answers (1)

Niketh Sudhakaran
Niketh Sudhakaran

Reputation: 514

I got a solution here.

We need to check the Route53 to find the current active region for the application. In DR region, when we receive a message on SQS , it will trigger the lambda. The lambda checks for active region based on route53 or ALB dns . If it finds the region is not active/live , it will skip processing of the message and hence the SQS queue will clear up on DR.

So live region Lambda will be actively processing SQS messages whereas the DR one will skip all the processing.

This idea should work for the scenario I mentioned above.

Upvotes: 1

Related Questions