[openstack-dev] Oslo messaging vs zaqar

Flavio Percoco flavio at redhat.com
Mon Sep 22 13:19:53 UTC 2014


On 09/22/2014 02:35 PM, Gordon Sim wrote:
> On 09/22/2014 10:56 AM, Flavio Percoco wrote:
>> What I meant is that oslo.messaging is an rpc library and it depends on
>> few very specific message delivery patterns that are somehow tight/based
>> on AMQP semantics.
> 
> RPC at it's core is the request-response pattern which is directly
> supported by many messaging technologies and implementable over almost
> any form of communication (it's mostly just convention for addressing).
> 
> In addition the oslo.messaging model offers the ability to invoke on one
> of a group of servers, which is the task-queue pattern and again is very
> general.
> 
> One-way messages are also supported either unicast (to a specific
> server) or broadcast (to all servers in a group).
> 
> I don't think any of these patterns are in any way tightly bound or
> specific to AMQP.
> 
> In fact Zaqar offers (mostly) the same patterns (there is no way to
> indicate the 'address' to reply to defined by the spec itself, but that
> could be easily added).
> 
>> Implementing Zaqar's API in oslo.messaging would be
>> like trying to add an AMQP driver to Zaqar.
> 
> I don't think it would be. AMQP and Zaqar are wire protocols offering
> very similar levels of abstraction (sending, consuming, browsing,
> acknowledging messages). By contrast oslo.messaging is a language level
> API, generally at a slightly higher level of abstraction, mapping method
> invocation to particular messaging patterns between processes.
> 
> Implementing Zaqar's model over oslo.messaging would be like
> implementing AMQP's model over oslo.messaging, i.e. reimplementing a
> general purpose message-oriented abstraction on top of an API intended
> to hide such a model behind message invocation. Though technically
> possible it seems a little pointless (and I don't think anyone is
> suggesting otherwise).

I was referring to the messaging/storage technologies both projects
target, which IMHO, are different.

> 
> Zaqar drivers are really providing different implementations of
> (distributed) message storage. AMQP (and I'm talking primarily about
> version 1.0) is not intended for that purpose. It's intended to control
> the transfer of messages between processes. Exposing AMQP as an
> alternative interface for publishing/receiving/consuming messages
> through Zaqar on the other hand would be simple.

Somehow, I keep failing at explaining things here.

The point is that IMHO, it doesn't make sense to merge both projects
because they both have different goals and purposes.

Cheers,
Flavio

-- 
@flaper87
Flavio Percoco



More information about the OpenStack-dev mailing list