When we were implementing the MQ Light broker, we wanted to be able to support 
sharing of subscriptions across a group of clients - in particular for the 
worker offload scenario. At the time we were unable to find guidance in the 
specification or extensions thereof, so we went ahead with encoding this into 
the terminus addresses of an attach. Using a `private:` prefix to denote an 
exclusive subscription, and `share:sharename` to indicate a shared one.

i.e.,

-> @attach(18) [name="share:sharename:topicname", handle=0, role=true, 
snd-settle-mode=0, rcv-settle-mode=0, source=@source(40) 
[address="share:sharename:topicname", durable=0, timeout=0, dynamic=false], 
target=@target(41) [address="share:sharename:topicname", durable=0, timeout=0, 
dynamic=false], initial-delivery-count=0]

vs

-> @attach(18) [name="private:topicname", handle=0, role=true, 
snd-settle-mode=0, rcv-settle-mode=0, source=@source(40) 
[address="private:topicname", durable=0, timeout=0, dynamic=false], 
target=@target(41) [address="private:topicname", durable=0, timeout=0, 
dynamic=false], initial-delivery-count=0]

The other day I happened to notice that the qpid-cpp broker also supports a 
similar functionality since https://issues.apache.org/jira/browse/QPID-4917 / 
https://github.com/apache/qpid/commit/d4dafd3 - and it does this by supporting 
a capability of 'shared' on the exchange, and expecting a client @attach to 
request this capability, whereupon the link-name is used as-is for the name of 
the share. I wasn't able to find this behaviour documented any further than 
that, and it wasn't clear to me what the behaviour should be for the various 
scenarios.

Ideally we'd like to conform to a common standard. Does anyone know if there 
were any plans to register this (or another) shared subscription behaviour with 
the working group as an extension?


-- 

Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU

Reply via email to