It using Producer and consumer with Blocking Consumer when empty list it also can have multiple producer, multiple consumer
It using Publisher and Consumer with Pull Based based on lastId
It use WATCH CLI and whenever the watched value key is changed the other client get aborted and return error redis.Nil