
Hi, I'm happy to announce a new network-transport backend based on the 0MQ brokerless protocol [1]. This implementation makes it possible to the wealth of ZeroMQ transports through a simple and shared API. In particular, ZeroMQ supports authenticated communication channels, encryption, efficient multicast and throughput enhancement techniques such as message batching. Wrapping a subset of the ZeroMQ API behind the network-transport API makes it possible for a wealth of higher-level libraries such as distributed-process and HdpH to communicate over ZeroMQ seamlessly, with little to no modification necessary. Network transport zeromq provides: * basic network transport API, ability to use channels and send messages over reliable connections between endpoints. * multicasting. Multicasting reliable and ordered in absence of a long network failures, i.e. if message A is send before message B, then message A will be delivered before message B to every subscriber in multicast group. * basic plain text authorization. * 0mq driven reliability. (automatic connection restart without message loose). * ability mark connections as broken, this may be required to stop automatic reconnect. We currently have a few performance issues that cause a consistent 30% slowdown in performance of network-transport-zmq over TCP, but we’re working on it. ZeroMQ should in fact *improve* performance over raw TCP in many use cases thanks to intelligent batching of queued messages. Current approach is an early release of the library in order to gather feedback. There is a large TODO list with a set of features that may be useful for a big set of use cases like different authorization mechanisms including certificate based, support of connection encryption, support for unreliable connections, heartbeating and service discovery support. This features will be implemented in short milestones. While we believe network-transport-zmq to be useful in its own right, it is only a stepping stone towards making the rich communication patterns implemented in ZeroMQ available through distributed-process. This will allow for writing ZeroMQ applications with all the power of the Process monad, supervision hierarchies, powerful type based matching abstractions and intuitive message sending primitives. All feedback are appreciated. If you have a commercial interest around this project then feel free to contact [2]. [1] http://zeromq.org/ [2] mailto:sales@tweag.io -- Alexander Vershilov mail-to: alexander.vershilov@tweag.io -- Alexander