On 01/21/2011 07:18 PM, Jonathan Robie wrote:
I think I'd like to be able to declare the objects we currently support
directly. That includes AMQP 0-10 and the Qpid extensions.

I'd rather not have a declaration mix constructs from two different
semantic domains unless there's a clear advantage to doing so. So I'd
like to be able to say "create direct exchange", not "create direct topic".

The request to create a direct exchange would be something like:

create (type:"exchange", name:"abc", properties: {"sub-type":"direct", "durable":True})

If the sub-type property is omitted, the default is a topic exchange. E.g.

create (type:"exchange", name:"abc", properties: {"durable":True})

I'm not sure whether 'sub-type' should be the *actual* name for the property here. Perhaps something a little more explicit and specific would be clearer, e.g. x-amqp010-exchange-type. The counter-argument perhaps is that sub-type could be more generally useful e.g. in allowing one to specify a ring queue or a last-value queue and uniformity might be helpful. TBD in updated draft.

Do we need to allow the user to declare Messaging API topic?

Yes, I believe that is desirable. If I want to send to a queue, I could have a setup script that issued a create request for an object of type queue. If I want to do the same for a 'topic' (as in JMS or in the messaging API) then it would be nice to be able to simply issue a create request for the appropriately named topic.

E.g. an alternative form of the above request would be:

create (type:"topic", name:"abc", properties: {"durable":True})

If so, adding 'create topic' is easy,

Indeed. A topic as interpreted in the current implementation of the messaging API (or indeed our JMS implementation) is based on an exchange. Hence the suggestion to recognise 'topic' as an alias for an exchange (and to default to topic exchanges, which is what the addressing scheme does also).

Pub-sub topics are a common and well understood pattern. In future we may want to offer more explicit support for them.

(The pre-1.0 amqp exchange types on the other hand should be considered optimisation hints in my view, since the only thing they achieve is specialised implementations of particular matching patterns).

[snip]
Do we want to be able to support other messaging models other than AMQP?

Do you have anything specific in mind here?

What happens if two different systems use the same name for different
things?

I think we would need to consider such questions on a case by case basis.

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to