Using ZMQ to exchange information



I am working on improving an existing project and I am considering using pyZMQ in order to exchange information between different processes.

I believe that ZMQ may give a nice way of implementing a pattern similar to signals and slots of Qt but in a completely asynchronous way, with queue management out of the box, etc. However, I still see some issues, for instance to pass numpy arrays you have to serialize them, which adds to the computational cost.

Has anybody used this library and have any advice on pros/cons that I may be missing?