I've been looking at using Redis Pub/Sub as a replacement to RabbitMQ.

From my understanding Redis's pub/sub holds a persistent connection to each of the subscribers, and if the connection is terminated, all future messages will be lost and dropped on the floor.

One possible solution is to use a list (and blocking wait) to store all the message and pub/sub as just a notification mechanism. I think this gets me most of the way there, but I still have some concerns about the failure cases.

  1. what happens when a subscriber dies, and comes back online, how should it process all it's pending messages?
  2. when a malformed message comes though the system, how do you handle those exceptions? DeadLetter Queue?
  3. is there a standard practice to implementing a retry policy?
Edit
Report