I have an SQS queue (standard, not FIFO) I'm using as a task queue for multiple workers on a long-running process.
I'm trying to add a 'kill switch' that'll temporarily stop my workers from being able to receive/process any messages.
I don't want to delete the messages or stop any new messages from entering the queue, just stop any readers until I toggle the kill switch again.
Is this possible to do with the SDK? or with permissions?
I dont know of an sqs pause button, and I don't see any sqs API calls that seem promising.
You could remove access from the iam policies allowing the readers to read.
You could remove access to sqs public ips at a network level.
But I hate those solutions; they blur failure scenarios with success and aren't really any more elegant or convenient than orchestrating within the application.
I'd advise my engineers to use a feature flag for this, in dynamo, consul, or some other consistent key value store. Makes a lot more sense to me than allowing all the reads to fail continuously while the permission or net access is removed
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With