Recently we ran into a situation at work where we needed to move all messages from one of our dead letter queues, back onto the “live” queue for the service.

AWS doesn’t expose a way to move messages out of the box, so I wrote a small utility, which I creatively named sqsmv.

I wrote the project in Go because it is a great fit for command line programs, and I’ve also worked with the Go AWS SDK before.

I created a bunch of messages and tested it… First try! This is something I find happens more often when I’m building with Go, compared to doing the same task with a dynamic language.

sqsmv has worked well, successfully moving hundreds of messages between SQS queues. I hope someone out there finds it useful.