You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Robbie Gemmell <ro...@gmail.com> on 2016/11/17 14:43:08 UTC

[DISCUSS] Shared topic subscriptions using AMQP 1.0

Hi folks,

I'd like to shine light on an idea around doing shared topic
subscriptions using AMQP 1.0, something useful in general but required
in particular for client work on supporting JMS 2.0 (QPIDJMS-207).

A quick summary of the idea is that:
- Support would be identified via a 'SHARED-SUBS' connection or link
capability to allow clients to detect support/lack-of.
- A 'shared' source capability would be used to identify sharing is desired.
- Sharing would by default be container-id scoped as with links, but a
'global' source capability would be used to identify wish to share a
subscription identity across any connection regardless of
container-id.
- The link name is used to convey the subscription name, with a naming
"<subname>[|suffix]" scheme to facilitate disambiguating different
links referencing the same subscription name from the same
container-id where needed (as only one link of a given name is allowed
between containers, per direction).

I split out a specific JIRA for this
https://issues.apache.org/jira/browse/QPIDJMS-220 which covers things
in [much] more detail, as there are a great many to try and include
here and I'd like to reference it there for other [broker] JIRAs
later. Feel free to comment here (or there) after giving it a read.

I've implemented much of this now for the JMS client to validate the
idea, as there have been others in the past that wouldn't work for one
reason or other. The connection capability handling mentioned is in
there, but the link capability handling is still outstanding as
support needs added to Proton first for that. I've put a 0.20.0-beta
cut up in a temporary staging repo in case anyone would like to check
it out, its at:
https://repository.apache.org/content/repositories/orgapacheqpid-1093.
Note though that you wont get very far with using the shared subs bits
yet, due to needing server support.

Gordon also put together some examples using Proton python at
https://github.com/grs/amqp_subscriptions to show how this could be
supported in the other APIs. There are simple client examples of the
various subscription combinations there can be and how that influences
the protocol interactions. There is also a little broker example,
though note it only implements some of the behaviours, and won't work
with the JMS client currently due to its capabilities checking.

Robbie

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org