Warning: These documents are under active development and subject to change (version 2.1.0-beta).
The latest release documents are at: https://purl.dataone.org/architecture

Use Case 21 - Owner Subscribe to CRUD OperationsΒΆ

Revisions
View document revision history.
Goal
Data owners can subscribe to notification service for object management (create, read, update, delete, replicate) operations for objects they own.
Summary
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.
Actors
  • Subscriber
  • Coordinating Node
Preconditions
  • Content has been added to system
  • Subscriber has access to content
Triggers
  • A new subscriber joins the system by creating a feed definition
Post Conditions
  • A new subscriber is recorded
  • A new feed is generated
../../_images/21_seq.png

Figure 1. Interactions for use case 21.

Notes

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.

Some observations:

  • 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?