13
  1. Does ZeroMQ guarantee the order of messages( FIFO ).
  2. Is there an option for persistence.
  3. Is it the best fit for IPC communications.
  4. Does it allow prioritizing the messages.
  5. Does it allow prioritizing the receivers.
  6. Does it allow both synchronous as well asynchronous way of communication?
mirosval
  • 6,671
  • 3
  • 32
  • 46
PhiberOptixz
  • 512
  • 6
  • 13
  • 3
    6 questions? most of them are clearly answered by the zmq guide. This is where we're going to send you to for a reference, google it :) zguide.zeromq.org/page:all – g19fanatic Oct 16 '12 at 19:41
  • it is not a product, but a library. if you want any of these 6 things you need to configure/write it yourself (usually just a few lines of code). – Alex May 24 '20 at 07:44

2 Answers2

6

Zeromq is best understood as a udp like messaging system. Thus is does not intrinsically guarantee any of that. It DOES guarantee that parts of a single message are received atomically and in order, since ZMQ allows for sending a message consisting of several parts. All communication is always asynchronous by design.

see http://zguide.zeromq.org/ for more advanced patterns.

that being said, all the features requested would by definition make the transmission slower and more complicated. If they are needed you should implement or use one of the available patterns of the guide.

mgoetzke
  • 804
  • 7
  • 14
6

https://lists.zeromq.org/pipermail/zeromq-dev/2015-January/027748.html

The author said:"Messages carried over TCP or IPC will be delivered in order if they pass through the same network paths. This is guaranteed and it's a TCP guarantee, nothing to do with ZeroMQ. ZeroMQ does not reorder messages, ever. However if you pass messages through two or more paths, and then merge those flows again, you will in effect shuffle the messages."

Jichao Zhang
  • 436
  • 5
  • 7