Jump to: navigation, search

Difference between revisions of "Zaqar/specs/amqp/api/v1"

(How is going to be structured?)
Line 1: Line 1:
= Marconi AMQP Transport v1 =
+
== How is going to be structured? ==
  
== Why add support for AMQP ==
+
AMQP has a well-defined transport protocol we will stick to. The current version of  the AMQP transport driver won't implement concurrency, but is something we will be adding in the short term.
  
Having support for more transport protocols would allow us to support a broader set of use-cases.
+
AMQP also has a structure for messages we will be using.
  
AMQP is a standard protocol adopted by other messaging services, so an application written to use AMQP could be run against Marconi even if that was not the original (or only) target.
+
Since Marconi has some features that are not in other messaging implementations, we decided to keep the 'normal' behavior with AMQP and avoid confusions. This is, we won't add support for message/s retrieval by id or message/s deletion by id, just to mention some. A complete list of what is it going to be supported and what is not will be added here. (WIP)
  
Also, Marconi could provide store-and-forward capabilities to AMQP.
+
=== Address syntax ===
  
== How is going to be structured? ==
+
An address has the following form:
  
AMQP has a well-defined transport protocol we will stick to. The current version of the AMQP transport driver won't implement concurrency, but is something we will be adding in the short term.
+
  [ amqp[s]:// ] domain [/[name]]
 
 
AMQP also has a structure for messages we will be using.
 
  
Since Marconi has some features that are not in other messaging implementations, we decided to keep the 'normal' behavior with AMQP and avoid confusions. This is, we won't add support for message/s retrieval by id or message/s deletion by id, just to mention some. A complete list of what is it going to be supported and what is not will be added here. (WIP)
+
Where domain can be one of:
  
== Interaction of an AMQP client with the Marconi server ==
+
host | host:port | ip | ip:port | name
 +
The following are valid examples of addresses:
  
{| border="1" cellpadding="2" cellspacing="0"
+
amqp://example.org
|  '''Marconi operation'''
+
amqps://example.org
|  '''AMQP message'''
+
amqps://example.org/outgoing
|-
+
amqps://127.0.0.1:1234
|  Post message
 
./client.py amqp://127.0.0.1:8888/myqueue/ "Subject" "Message body"
 
|-
 
|}
 

Revision as of 00:31, 10 July 2014

How is going to be structured?

AMQP has a well-defined transport protocol we will stick to. The current version of the AMQP transport driver won't implement concurrency, but is something we will be adding in the short term.

AMQP also has a structure for messages we will be using.

Since Marconi has some features that are not in other messaging implementations, we decided to keep the 'normal' behavior with AMQP and avoid confusions. This is, we won't add support for message/s retrieval by id or message/s deletion by id, just to mention some. A complete list of what is it going to be supported and what is not will be added here. (WIP)

Address syntax

An address has the following form:

[ amqp[s]:// ] domain [/[name]]

Where domain can be one of:

host | host:port | ip | ip:port | name

The following are valid examples of addresses:

amqp://example.org amqps://example.org amqps://example.org/outgoing amqps://127.0.0.1:1234