Hello Everyone, As said before I'm working on the transport system for the remote services in Celix, Sadly I haven't had time to test and compare all the message queue's I found during the research. I did compare ZeroMQ[1] with TCP and UDP. I haven't finished the report on the research but the results show ZeroMQ and TCP performing almost identical on Latency and Throughput.
Having finished testing the time has come to implement a system in Celix. I would like to implement ZeroMQ as a transport service but there is a license conflict since ZeroMQ is licensed under LGPL v3 which is on the category-x[6] list. Would it be possible to add a dependency on ZeroMQ? Other options to build the transport service with would be: -Apache ActiveMQ[2] -Apache Qpid[3] -Apache Qpid-Proton[4] -RabbitMQ[5] -TCP Apache ActiveMQ: Build in Java Openwire and Stomp clients in C based on AMQP 1.0 Bindings available for 17 languages Apache QPid: Build in C++ and Java Based on AMQP 1.0 Bindings available in a few languages Apache Qpid-Proton: Build in C and Java Based on AMQP 1.0 Bindings available in a few languages RabbitMQ: Build in Erlang Based on AMQP 0-9-1 Bindings for a 20+ languages License: MOZILLA PUBLIC LICENSE Version 1.1 [7] TCP: No dependency's on other systems and projects Reliable Quite fast Every system except TCP has a broker which could be useful for monitoring and administration of queue's. Based on what I have seen on the internet RabbitMQ would be the most active and stable system to use. I'm unsure which system to choose. On of the Apache projects but apart from Qpid-proton they all introduce a Java Broker. Qpid-proton seems to have little with three commiters on the github repository. RabbitMQ has a broker build in Erlang and doesn't use the last version of AMQP which might be a problem when trying to connect to a system using AMQP 1.0. TCP on the other hand is also an option. It doesn't add any dependency's. It might be a little more complex to set up the connections for the remote services but this can be solved. So to summarize: What Transport system should I implement? ZeroMQ and introduce a dependency and maybe a legal issue. A message queue system from the list above? Or build it in TCP? Regards, Erik Jansman 1:http://www.zeromq.org/ 2:http://activemq.apache.org/ 3:http://qpid.apache.org/ 4:http://qpid.apache.org/proton/ 5:https://rabbitmq.com/ 6:http://www.apache.org/legal/resolved.html#category-x 7:https://rabbitmq.com/mpl.html
