First, ZeroMQ is awesome, I've been using it for years. However, I'm working on an idea that may need to transition communication from between threads into between processes, and then possibly outward even more into communication over IP. While I can obviously make this work without using ZMQ_PAIR for ipc:// or tcp://, I'm still confused regarding the state of this "experimental" status. To be honest we can only assume that this experimental status only applies to network based sockets because the documentation is not specific on that note. I believe this should be covered in a little more detail, at least to a point where a user isn't left to assume. The specific foot note I'm referring too:
ZMQ_PAIR sockets are designed for inter-thread communication across the zmq_inproc(7) transport and do not implement functionality such as auto-reconnection. ZMQ_PAIR sockets are considered experimental and may have other missing or broken aspects.
http://api.zeromq.org/master:zmq-socket
[edit] I'm posting this here because I believe it's more of a documentation bug than an implementation bug. The specific behavior when using ZMQ_PAIR is understandable, and it's difference between other socket types is understandable as well given the non-trivial difference of communication between endpoints which are in fact related threads. I just feel it's a bit of a hole in the documentation when considering how well ZMQ is otherwise covered inside and out.
First, ZeroMQ is awesome, I've been using it for years. However, I'm working on an idea that may need to transition communication from between threads into between processes, and then possibly outward even more into communication over IP. While I can obviously make this work without using ZMQ_PAIR for ipc:// or tcp://, I'm still confused regarding the state of this "experimental" status. To be honest we can only assume that this experimental status only applies to network based sockets because the documentation is not specific on that note. I believe this should be covered in a little more detail, at least to a point where a user isn't left to assume. The specific foot note I'm referring too:
http://api.zeromq.org/master:zmq-socket
[edit] I'm posting this here because I believe it's more of a documentation bug than an implementation bug. The specific behavior when using ZMQ_PAIR is understandable, and it's difference between other socket types is understandable as well given the non-trivial difference of communication between endpoints which are in fact related threads. I just feel it's a bit of a hole in the documentation when considering how well ZMQ is otherwise covered inside and out.