Ticket #322 (new enhancement) — at Version 1
Interface for Notification Service
Reported by: | dread | Owned by: | dread |
---|---|---|---|
Priority: | blocker | Milestone: | v1.1 |
Component: | ckan | Keywords: | |
Cc: | Repository: | ||
Theme: |
Description (last modified by dread) (diff)
Use cases
- Registration
- Deregistration
- Configuration of port in pylons config
Design
- Default port: 5672 (standard for AMQP)
- Exchange name: 'ckan'
- Exchange type: topic exchange (most flexible)
- Routing keys: (see below)
Routing detail
Routing key format: "OBJ_TYPE.OBJ_ID.CHANGE_TYPE" (NB tags should be identified by their name, not ID)
Example routing keys
- 'package.238bc-704a87-928374.new' - New package created with ID '238bc-704a87-928374'
- 'group.4234-ab98203-fe324.edited' - Group '4234-ab98203-fe324' edited
- 'tag.704a8-2f38bc-928374.' - New package created with ID '238bc-704a87-928374'
Example queue bindings that clients may use:
- * - no filtering - client receives all notifications
- package.* - only changes to packages
- package.238bc-704a87-928374.* - only changes to a particular package
- package.#.new - only packages creations
Versioning
Since message payloads will be tied into the REST Entities, it makes sense to join up with the REST versioning. This could be achieved by providing new exchanges called 'ckan-1.1' perhaps?
Documentation
- How to use
- simple example of an external client?
Note: See
TracTickets for help on using
tickets.