What is ZeroMQ? – A Distributed Messaging System

What is ZeroMQ?

If we talk about the question, what is ZeroMQ? The naswer is, ZeroMQ is a distributed messaging system which is able to:

  • Connect your code on any platform and in any language,
  • Carry messages across IPC, TCP,TIPC, multicast, inproc,
  • Use smart patterns, such as push-pull, router-dealer and pubsub,
  • Use a small library, for high speed asynchronous I/O engines,
  • Be backed by a larger and active open source community,
  • Build any architecture, and
  • Provide free software with full support.

It is a community of projects which focus on decentralized messaging and computing.  It is constantly evolving.

The Core Engine of ZeroMQ

The distributed messaging engines vary in size and capability.  All ZeroMQ engines share a view of decentralized computing.  Protocols (RFCs) for connecting and exchanging messages are agreed upon.  Messages are in fact useful data, of any reasonable size.  The engines can be embedded into your applications.  Your own code then has as much power as the engine provides.  The power of this messaging spreads across the network, therefore it is called ‘distributed messaging’.

General Philosophy

The core technical goals are for simplicity and scalability.  The software and protocols are actually owned by the experts who build them, and they are open source.  The development process of ZeroMQ allows the code to remain clean and stable.

Some Comparisons

The Fedora Team moved their messaging service to ZeroMQ in 2012 and experienced a speedup of 100 times.

Auth0 Webtasks moved to ZeroMQ in 2015 and achieved a faster and more stable design.

Who is Using ZeroMQ?

Because ZeroMQ is a free software product, users are not tracked, but some organizations that are using it include AT&T, Cisco, NASA, Spotify, Samsung Electronics and Microsoft.

Some Comments on Using ZeroMQ

For most, the best way to start with ZeroMQ is to actually use it.  The concept may not be new, but it may take some time getting used to the ease of the programs.

The OMQ sockets are asynchronous which means the timings of most of the physical connections are transparent.

Others have said that ZeroMQ allows you to design complex communication systems with very little effort.

Leave a Comment