Switching from Redis to embedded NATS for pub/sub would make things way simpler.
I have benchmarks when using nats core , that show it bearing Redis for simple things like how this works.
Cant find the benchmark now of course :) will see if I can later .
It’s also possible to run nats in process . Just a single config change does this . It’s just an opt : opts.DontListen=true
Can then make multi region using https://docs.nats.io/running-a-nats-service/configuration/gateways
So it’s highly flexible ..