You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
hi, I am reading your project, why do you use ZeroMQ in your project instead of other message queues like Kafka, RabbitMQ... can you tell me about your purpose, the cons and pros of ZeroMQ, thank you so much
Hi @fizz12344321, thanks for your interest in our project. We used ZeroMQ for quite some time in-house and other facilitities and have had good experiences with it.
However, the primary reason why we continue using it (besides the debatable backward compatibility) is that with OpenCMW we are aiming at cross-platform compatible full-vertical-stack middleware that:
is compatible with C++, Java, and Python,
is highly performant w.r.t. throughput as well as latency,
supports composition, is flexible, and explicitly open for extension of additional protocols and/or serialiser wire-formats,
while using common/known programming patterns like 'publish-subscribe', 'request-reply', REST, ...
ZeroMQ still pretty much fits the bill as a reliable back-bone, with native C++, Java, and (if you prefer) Python implementations, where other transport protocols or wire-formats can be added as adapter/plugins to the Majordomo Broker. We are not too dogmatic about the ZeroMQ choice but it fits reasonably well and it does the 'Zero' bit quite well. OpenCMW could also be extended to support Kafka and/or RabbitMQ through adapters (typically only ~ 1kSLOCs). For the time being, we haven't got a strong use case yet that would justify us putting resources into this.
There are of course other implementations (e.g. our colleagues FairMQ implementation that supports also Infiniband, Kafka, RabbitMQ, or others...) but they usually have limitations w.r.t. cross-platform compatibility and/or performance.
Of course, further discussions, user stories, or even PR are welcome.
Activity
RalphSteinhagen commentedon Jul 11, 2022
Hi @fizz12344321, thanks for your interest in our project. We used ZeroMQ for quite some time in-house and other facilitities and have had good experiences with it.
However, the primary reason why we continue using it (besides the debatable backward compatibility) is that with OpenCMW we are aiming at cross-platform compatible full-vertical-stack middleware that:
while using common/known programming patterns like 'publish-subscribe', 'request-reply', REST, ...
ZeroMQ still pretty much fits the bill as a reliable back-bone, with native C++, Java, and (if you prefer) Python implementations, where other transport protocols or wire-formats can be added as adapter/plugins to the Majordomo Broker. We are not too dogmatic about the ZeroMQ choice but it fits reasonably well and it does the 'Zero' bit quite well. OpenCMW could also be extended to support Kafka and/or RabbitMQ through adapters (typically only ~ 1kSLOCs). For the time being, we haven't got a strong use case yet that would justify us putting resources into this.
There are of course other implementations (e.g. our colleagues FairMQ implementation that supports also Infiniband, Kafka, RabbitMQ, or others...) but they usually have limitations w.r.t. cross-platform compatibility and/or performance.
Of course, further discussions, user stories, or even PR are welcome.
What is your specific application/background?
RalphSteinhagen commentedon Jul 19, 2022
@fizz12344321 hope this was helpful and answered your question.
Meanwhile, since this is not a bug, I'll transfer this to the new discussion.
May I ask the background of your project?