[openstack-dev] Oslo messaging vs zaqar
Gordon Sim
gsim at redhat.com
Mon Sep 22 12:35:37 UTC 2014
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.
More information about the OpenStack-dev
mailing list