We need to define a policy on messaging in general.
OpenStack has gravitated toward using RabbitMQ for message passing. There are numerous excellent alternatives available as backends, including QPID and 0mq, but only RabbitMQ has received attention directly in the community at large. As a result, more and more users of these backends are switching to RabbitMQ, and this leaves QPID code lying around that is not well tested and not well supported by the community. Said code will continue to be a burden, and should be removed if it is doing more harm than good.
There is also anecdotal evidence that users are using the zmq driver to achieve high scale with fixes, but the zmq driver is not well tested either, which may actually be worse than not having it at all, as now anecdotes are passed from user to user but results will be very different for users who stick to upstream code.
RabbitMQ may not be sufficient for the entire community as the community grows. Pluggability is still something we should maintain, but we should have a very high standard for drivers that are shipped and documented as being supported.
We will define a very clear policy as to the requirements for drivers to be carried in oslo.messaging and thus supported by the OpenStack community as a whole. We will deprecate any drivers that do not meet the requirements, and announce said deprecations in any appropriate channels to give users time to signal their needs. Deprecation will last for two release cycles before removing the code. We will also review and update documentation to annotate which drivers are supported and which are deprecated given these policies
We could remove pluggability from oslo.messaging entirely, and just ship RabbitMQ drivers. This option would alienate users who have private drivers, and would also force users of the zmq driver who are trying to fix it to abandon those efforts and try to scale with RabbitMQ.
We could also go even further, remove the pluggability, and improve the kombu library enough to support all use cases of oslo.messaging. That is beyond the scope of this document though.
Clint “SpamapS” Byrum
This work is licensed under a Creative Commons Attribution 3.0 Unported License. http://creativecommons.org/licenses/by/3.0/legalcode