KonstantinJ Excellent point. In our case, this wasn’t a priority. Using sqs defaults for long polling, a single dormant worker will make 3 requests per minute, that’s 132,000 requests per month, which equates to $0.05 cents per month.
The total worker count is something that you must set manually depending on your server resources. However you can mitigate the cost by having a controller go-routine. This controller would be responsible for adding additional go-routine up to the provided limit whenever a worker receives an active message. Each routine would tear itself down when they receive empty messages down to a minimum of 1
I plan on open sourcing a library soon, it would be great to get your input!