0

I'm currently dealing with a problem caused by the blue green deployment pattern.

We have a single SQS queue, which messages can be consumed for both from blue and green servers.

I like to make the green (new version) to consume messages originated from green servers.

I thought about passing a variable for g/b value in the message, and re-queue it if its being processed by the wrong worker. But this may cause delays (multiple re-queues etc..)

Is there a common practice for this problem?

gCoh
  • 1,987
  • 1
  • 17
  • 36
  • Is there a reason you don't want a separate queue for each? It seems as though you have inputs and outputs that are different by b/g, so it would seem reasonable to have a separate queue for each as well. – Jason Wadsworth Aug 05 '20 at 21:21
  • this way the blue queue will not be tested – gCoh Aug 06 '20 at 06:01
  • I'm not sure I follow that. One option would be to have a lambda that listens to the main queue and sends the messages on to one of two new queues (a blue and a green queue). The listeners to each of those would be specific to the queue type, and the messages in those queues would be correct for the queue, so no re-queueing of messages that don't match. – Jason Wadsworth Aug 06 '20 at 13:48

0 Answers0