View document revision history.
Data owners can subscribe to notification service for object management (create, read, update, delete, replicate) operations for objects they own.
The system should support a mechanism for notifying a content owner of use of content they own. One approach may be to support a feed (e.g. RSS or Atom) whose entries indicate events related to an object or family of objects. Since object may be replicated to multiple nodes, an aggregator is necessary to provide a complete report to a user. The CNs keep aggregated logs of object access, so feeds may be generated by the CNs, however issues of scalability should be considered.
Content has been added to system
Subscriber has access to content
A new subscriber joins the system by creating a feed definition
A new subscriber is recorded
A new feed is generated
Figure 1. Interactions for use case 21.
Although conceptually simple, implementing a subscriber broadcast service that scales to tens of thousands of users and potentially billions of objects is non-trivial. The process for generating a feed entails processing accumulated logs to extract the relevant events, creating the feed entries, and rendering the feed on demand.
DataONE should be able to support at least one feed for each user, so say, about 100,000 feeds.
Read operations should far exceed the number of other types of operations, thus supporting only non-read log events would significantly simplify reporting.
Can we leverage an asynchronous messaging service such as XMPP or Twitter to hand off the logging / feed generation to other services?