So we are updating the full flag for a worker both in the worker after each message is processed and by the client when an available worker is found. That is so unresponsive workers can be flagged as full when enough incoming requests are queued. Once the worker processes one more request, they will update their usage and full flag with the right values. I tried to think of anything racy here, but it looks good.  Sorry, this is not a question/issue, just a ramble :)