Very, VERY good introduction to ZeroMQ

What’s ZeroMQ (0MQ)? It’s a non-brokered asynchronous messaging way to connect application on various platforms. Its creators call it "The Intelligent Transport Layer" (http://www.zeromq.org/). Why should you check it out?

Because it’s ultra-fast and lightweight

Because it supports various protocols, suited for the conditions you have to live with (for instance: multicast, IPC or even communicating within the same process)

Because it’s so flexible, that it fits to any distributed scenario you like

Aaaaaand finally - because it’s LGPLv3 licensed so you don’t have to pay for it (unless you want a separate commercial support, ofc)

Obviously there are some scenarios it doesn’t fit well (because it doesn’t support out-of-the-box persistence or because it’s non-brokered by default), but it fits many other cases (think about big throughput event processing!). Some may not like it because of socket-level programming feeling (yes, it’s kinda low-level approach), but it’s all about flexibility, isn’t it?