Publish Subscribe Content Notifications

Showing results for 
Search instead for 
Did you mean: 

Publish Subscribe Content Notifications

0 0 3,289

Obsolete Pages{{Obsolete}}

The official documentation is at:

NOT FINISHEDExtension IdeasNotification ServiceDesign Discussions
NOTE:  This page relates to general design discussions and extension ideas. These have not been targeted for any specific release.

Project Description

Provide the basics of a notification system which can in turn support advanced functionality like publish subscribe content deployment.

Note: I will refactoring the subscription component for sure.
[Alfresco Notification Service Proposal]

[Alfresco Subscription Manager Proposal]

Also need to line this up with the the proposal for Notification Service and Subscription Service

Project Requirements/Objectives

<discuss the project requirements and objectives>

Initial Project Scope

Discussion of Design/Implementation Approach

The following section is a discussion of the basic interfaces that could be used to form the basis of a notification mechanism.  Please feel free to comment, suggest and point out issues. Feel free to post these comments in-line.


Basic M2 Interfaces

cmSmiley Surprisedbservable

cmSmiley Surprisedbservable is a marker interface applied as an aspect to repository nodes which can cause a notification.  'cm' may not be the appropriate name space for this aspect.  'sys' may be a better place for this aspect.


Notification Services

Notification Services is the basic interface through which components outside of the notification internals interact with 'Notification.' 

Notification Services should provide at least:

  • createNotification(...)
  • sendNotification(...)
  • subscribeForNotification(....)
  • unsubscribeForNotification(....)


Notification is the base class for notifications.  Concrete notifications implement this interface or abstract class.

Possible Implementations are:

  • Content Notifications
  • User Notifications
  • Task / Workflow Notifications

Notification Factory

Depending on which internals are used to satisfy the Notification Services interface different Concrete Notification implementations may be appropriate.  Notification Services may delegate the responsibility of creating Notification(s) to a implementation that meets this interface.

Notification Queue

Notification Queue (Topic) may be used by the notification services as a mechanism to delegate / deliver notifications. The basic implementation might have on Notification Queue which acts as a system wide sink (seen in illustration) We may want to require that queue notification does not block.

  • enqueueNotification(...)

Implementation may wish to address

  • Persistence of Notifications
  • Duplicate notifications

Subscription Manager

Subscription Manager is an interface which is implemented by implementations which handle subscriptions.  Notification Service can delegate the responsibility of managing notification subscriptions to this interface. 

  • subscribeForNotification(...)
  • unsubscribeForNotification(...)
  • sendNotification(...)

Implementations may wish to address:

  • durable subscriptions


A Notification Subscription.


The following section details a number of use cases and technical details that apply to each case

Push Based Content Publishing

Pushing content to a destination has some drawbacks.  It means the repository has to know 'who' the destination is and 'where' to drop off the payload.  Publish / Subscribe is a much less cohesive, more scalable solution.  However, there are scenarios where it is prudent to push content. 



Queued Destination

Destination Manager

Integration with Workflow

Integration with Notification

FTP Specialization

Publish Subscribe Based Content Publishing


JMS Notification of Update / Web Service Pull Specialization

Additional Notes

publish subscribe and Notification Service