I am testing ZeroMQ as Pub-Sub (service bus style) infra for a medium system. We have about 50 nodes, all of them should be publishers and subscribers. The network is kind of a star topology, but the edges "talk" with each other. We require Dynamic discovery (no need to hard-code the network addresses of the participants) but also no SPOF (Single Point of Failure).
I have read http://zeromq.org/whitepapers:0mq-3-0-pubsub and from what I understand, the suggested 0MQ way for dynamic discovery involves an proxy node (XPUB/XSUB) which forwards subscriptions and publications. I considered using such a proxy as a central mediator in our system, however, I have the following concerns with this architecture: (A) The proxy node is a SPOF - when it fails the whole system is not functioning (B) All traffic, including data, passes through the proxy node, which means the latency & performance issue.
Assuming I understood the pub-sub whitepaper correctly, is there a relatively simple way for achieving pub-sub + dynamic-discovery + no-SPOF in ZeroMQ?
Additional point: I have ruled out multicast (PGM) solution because most messages have a single/few interested parties and we do not like to overcrowd the network.