<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000"><pre>> I actually have a big interest in adding support for AMQP 1.0. One of
> the *really* interesting things with AMQP 1.0 that is relevant for
> OpenStack is that it is not tied to using a message broker. You can use
> it in both a peer-to-peer and a brokered way. This is interesting,
> because depending on the messaging pattern we're using, we may want one
> vs the other in different parts of OpenStack.
> As for the specifics to doing this, the only AMQP 1.0 client I know of
> is Proton. It does have Python bindings.
>
</pre>
<tt>AMQP 0-{8,9,10} are asymmetric client/server protocols with a
well-defined server/broker behavior. AMQP 1.0, by contrast, is a
symmetric wire-line protocol, without a requirement for a broker
at all. As Russell points out, this opens the possibility of
brokerless peer-to-peer messaging.<br>
<br>
The problem with peer-to-peer at the transport is that it doesn't
scale well, doesn't provide fanout, requires complicated URL
management, and causes problems with firewalls. It might be
appropriate for a small number of use cases, but a broker or some
other form of intermediary is still needed.<span class="HOEnZb"><font color="#888888"><br></font></span></tt></div></blockquote><div><br></div><div style>The ZeroMQ driver in OpenStack RPC already does peer-to-peer messaging and overcomes the fanout and other issues through code that already resides in oslo.rpc. Most of that functionality lies in the "matchmaker" which can, as you suggest, integrate an intermediary for the purpose of peer tracking.</div>
<div style><br></div><div style>I intentionally approached the ZeroMQ / MatchMaker driver design to facilitate the use of other transports. The primary purpose of the ZeroMQ driver is not to leverage a buzzword, but exists for the specific purpose of offering a peer-to-peer solution.</div>
<div style><br></div><div style>If someone so strongly desires and prefers AMQP 1.0 over ZeroMQ for peer-to-peer messaging that they'll write and maintain an implementation for oslo.rpc / oslo.messaging, I'd be happy to see it introduced. I suspect there is much code that could be shared and reused, as well.</div>
<div style><br></div></div>-- <br>Regards,<div>Eric Windisch</div>
</div></div>