This wiki space contains archival documentation of Project Bamboo, April 2008 - March 2013.
The Notification service executes requests to notify individuals and groups in accordance with access permissions and user-expressed communication preferences.
The Notification Service's primary function is to disseminate Notifications on behalf of Publishers to those Notification Consumers for which Subscriptions have been registered, against specific Topics. While the Notification Service will be designed to provide a general publish / subscribe capability, the requirements specifically call for the ability to:
A Topic is some subject of interest to NotificationConsumers that is dependent on the Situation. A typical usage pattern is to define a single Notification for each kind of Situation, containing information pertinent to that kind of Situation; typical Topics include:
A Situation is some occurrence known to a Publisher and of potential interest to Notification Consumers. A typical Situation would be the completion of an asynchronous process.
A Notification is an artifact of a Situation containing information about that Situation that some Publisher (e.g. a Functional Service) wishes to communicate to Notification Consumers.
A Publisher is a client of the Notification Service that publishes a Situation for a previously registered Topic.
A Notification Consumer is the recipient of a Notification. The Notification Consumer receives a Notification if they have previously subscribed to a Topic. For BSP Phase I, Notification Consumers are usually Bamboo Persons or Bamboo Groups but can also be anonymous users who specify their own Notification Channel.
A Subscription is made on behalf of a Notification Consumer by a Subscriber. A Subscription represents the relationship between a given Notification Consumer and a specific Topic.
A Subscriber is any client of the Notification Service that sends the subscription request message. The effect of the subscription request is to add a Subscription to a Topic. Note that a Subscriber may be a different entity from the Notification Consumer for which Notifications are actually produced. For example, this is the case when a Functional Service is acting as a Subscriber on behalf of the Bamboo Person who will eventually receive a Notification that their asynchronous process has completed
A Notification Channel represents the means by which the Notification Service will send a Notification to a Notification Consumer. A Notification Consumer's Notification Channel(s) are either taken from their Bamboo Person data or can be specified by the Subscriber during subscription.
The following Sequence diagram illustrates the interactions involved in the general case for providing a user/client with a notification that their asyncronous request has been processed.
While it is expected that a Publisher (e.g. a Functional Service) will likely include a link to content in the Result Set Cache, this behavior is not included in the description, use cases, or models for the Notification Service since said interaction is solely at the discretion of the Publisher and does not require any special processing or capabilities on the part of the Notification Service.