Hi James, thanks for the answer. You're right, Python bindings for zyre are automatically generated stubs for calling C directly. Those can be integrated to async python but one must do it manually.
The main reason I wrote about zyre is that the protocol is already defined and can be learned from. Michal On Wed, Jun 27, 2018 at 1:09 AM, James Addison <add...@gmail.com> wrote: > > On Tue, Jun 26, 2018 at 1:42 PM Michal Vyskocil <michal.vysko...@gmail.com> > wrote: > >> Zyre, it supports discovery and reliable group messaging without a broker. >> https://github.com/zeromq/zyre/blob/master/README.md#scope-and-goals >> >> Malamute,the zeromq broker. It provides pub/sub, request/reply and >> service communication pattern. >> https://github.com/zeromq/malamute/ >> >> I know that you might want to avoid central servers, however this is >> based on zproto architecture with simple server and complex clients. >> According Pieter this is great way towards reliability. Usually it's up to >> client to handle advanced things like retransmit. >> >> If nothing, this is a great source of design information for you, as you >> seems to solve similar problems. >> > > Michal, > > Those are great resources to understand the design of distributed systems > using zeromq, I agree. Thank you! I have looked at them over the last few > months, but discarded them as options in this puzzle of mine - I don't > actually recall the reasoning and given that I've had more recent > enlightening input, I will be looking at zyre in particular again. I don't > think malamute is quite right here. > > I don't believe I mentioned it, but I'm planning to build this system > using Python3 with pyzmq - in particular, the asyncio variant included in > pyzmq. The zyre project has Python bindings, but a) they are not based on > Python3's asyncio and b) there are not many examples using it. For the > purposes of peer discovery though, I'm not actually sure having asyncio > integration is crucial though. > > Based on my recollection, I think that zyre's main strength is > decentralized peer discovery (no need for well-known nodes) - which would > mean multicast being a requirement. However, networks using this system > won't always have multicast enabled (AWS VPC, etc). That said, I believe > that it has a secondary mode for gossiping using a well-known node? I > would love verification of this? > > Unless something mind-blowing is revealed, I'll probably continue along > the XPUB/XSUB path. It keeps zeromq system requirements to a minimum (just > pyzmq), so it would have to be a sizeable net positive to include a > non-trivial build/configuration step. > > James > > > _______________________________________________ > zeromq-dev mailing list > zeromq-dev@lists.zeromq.org > https://lists.zeromq.org/mailman/listinfo/zeromq-dev > > -- best regards Michal Vyskocil
_______________________________________________ zeromq-dev mailing list zeromq-dev@lists.zeromq.org https://lists.zeromq.org/mailman/listinfo/zeromq-dev