[rabbitmq-discuss] Simpler STOMP Behaviour

Michael Bridgen mikeb at rabbitmq.com
Mon Oct 4 16:27:01 BST 2010


>> This design proposes to remove the custom headers, and use only the
>> `destination` header with compound values that define the exchange,
>> routing key and queue names.
>
> Rob,
>
> This looks very good.
>
> There is one additional use case which is often needed: private
> temporary queues to get replies back. This maps to the Return Address
> concept in Enterprise Integration Patterns.
>
> Is this something that could be done with your proposed syntax?

Since there's no reply from the server to SUBSCRIBE, and we generally 
want reply queues to have different properties to shared queues, really 
the only option is to have a distinguished prefix for reply queue 
destinations, and require clients to supply their own (preferably fresh) 
names.

For example:
SUBSCRIBE /reply/<md5 of some client properties>

It might be an idea to use queue leases for these, instead of 
auto-delete, so that a client fronting up after a connection drop has a 
chance of recovering replies. (If it's lost its own state, then it 
should construct a fresh name)

> Also, what about AMQP 1.0? Have you considered it in order to get a
> syntax that can be adapted/extended to the new AMQP 1.0 concepts?

Do you mean using something like /node/ for destinations?

There aren't really any such concepts in AMQP 1.0 to pin a concrete 
protocol implementation to.  It's only a message exchange protocol, and 
just like STOMP, doesn't take an opinion on what is addressable at the 
broker.  Indeed, if we were to make an AMQP 1.0 adapter, we'd have to 
invent some scheme for addressing exchanges and queues there, too.


Michael.


More information about the rabbitmq-discuss mailing list