Distributed Systems with ZeroMQ

“One of the first things to understand about ZeroMQ is that it’s not a message broker like you might assume from its name. ZeroMQ is a library that supports certain network communication patterns using sockets. The “MQ” part comes in because ZeroMQ uses queues internally to buffer messages so that you don’t block your application when sending data. When you say socket.send(...), ZeroMQ actually enqueues a message to be sent later by a dedicated communication thread. (This communication thread and its state are encapsulated in the ZeroMQ Context object used below; most programs will have a single Context.)…”