Competing Consumer on Redis Pub/Sub supported?
Pubsub doesn't work that way - the message goes to all connected subscribed clients. However, you could set it up so that the channel is a notification of an update to a list. That way all clients will get the message, but only one can take the item from the list with LPOP.
You need use Redis Streams with XREADGROUP, it's a new feature of Redis.
https://redis.io/topics/streams-intro
Another approach would be to use B*POP
from your service instances. If you have lots of clients running B*POP
against a list, whenever you LPUSH
to it, one of those clients will get the data, but only one.