Currently, Mitose only supports SQS, and all the logic is based on the SQS controller. In other words, there's a bunch of reusable functions on the SQS controller which aren't supposed to be there. The only thing that should be queue backend-specific is how we gather the number of messages unacked/undelivered (or visible/in-flight).
It would be great if we could reuse these functions:
- CalcDesiredReplicas
- Autoscale
And GetMetrics would be queue backend-specific.