yeah, so the idea i had was basically -- think of publishing and subscribing as 2 different units. then, you have a bridge/replicate node in between. subscribe --> bridge/replicate <--> publisher
i.e:
publisher A, publishes video to instance A
subscribe 1, trying to subscribe to publisher A, instead of going to instance A directly, it can connect to an intermediate node which then find the origin for publisher A and subscribe from it.
in my implementation i've tried kind of a p2p model where any instances can subscribe to any instances without clear lines of responsibility, but it turned into a clusterfuck very quickly LOL. so it might be easier if you make them as a separate instance with clear responsibility -- have the intermediate node only pulling videos for origin.
from scalability standpoint, i'd imagine something like: subscriber nodes in the edges, which communicate to the immediate nodes in the region, which communicate to the origin. with this strategy you should be able to scale exponentially.