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
  • Because it’s available for all major OSes you’d like to put it on 
  • Because it supports 30+ programming languages (including .NET ones, of course)
  • 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?
Sooo, to the point: there’s an awesome article titled "ZeroMQ via C#: Introduction" (http://www.codeproject.com/Articles/488207/ZeroMQ-via-Csharp-Introduction) that won’t take you much time to skim through, but in exchange it will give you a very nice overview of how easy it is to use ZeroMQ.
If you’re interested in building scalable, distributed solutions, reading this is *highly* recommended.