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).

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.

OpenStack-dev mailing list

Reply via email to