Activity Streams

    Introduction 

    Activity Streams are persistent timeline of micro-messages emitted by users, either manually or by their actions, and applications. Each entity (user or application) will have a stream of activity events which aggregates the entities own activities, activities of entities the user is subscribed to and messages directly sent to them. Messages in the stream can be private or public, determining whether an entity other than the stream owner can see a message. In addition, messages can be associated to a permissioned resource (such as page) and the message's visibility will then be goverened by the viewer's permissions to that resource. Stream can be filtered by entity originated and entity received messages, so it is easy to see what the entity is observing and what the entity is doing.

    Intended Audience

    Users

    Applications

    Additional information

     

    References

    Status

    Initial scoping by arnec

    Functional Specification

    Use Cases

    User updates status

    A user types a brief message of their current status.

    The message shows up in the user's stream and is also dispatched to every subscribing entity's stream.

    Status updates are always public

    User causes an action on the site

    User updates a page, leaves a comment, etc.

    A message describing the action is added to the user's stream and dispatched to every subscribing entity's stream.

    The message is associated to a system resource and visibility of the message in either the user's or subscriber's stream is governed by the viewer's permission for that resource.

    User causes an action in an application

    User uses an application in a way that the application considers an activity.

    Application creates a message about the activity, which is added to the user's stream and and dispatched to every subscribing entity's stream.

    Visibility of these updates is public or private as determined by the application. If the application's action interacts with a site resource, visibility of public actions is additionally governed by the viewer's permission for that resource.

    User mentions a user (@), application (@), tag (#), group ($)

    If an reserved name, i.e. a keyword prefixed by @, # or $ is mentioned in a status update, all owners/subscribers for that reserved name will have the message dispatched to their stream. Otherwise the behavior is identical to a status update.

    User sends a directed message

    A message sent directly to a user, group or set of users or groups (syntax to be determined), acts like a status update, but is private to the stream owner for every stream that the message appears in. For groups that means anyone that is subscribed to a group.

    User subscribes to another stream (user, application, group)

    User locates stream (should there be a directory just for activity related entities, since we need a place to show groups and activity emitting applications as well?)

    User subscribes to stream.

    All messages emitted by the stream's owner or for a group stream, messages dispatched into the group, are dispatched into the subscriber's stream.

    User subscribes to a tag

    User creates a search for one or more tags (each search is an AND of all tags).

    Any public status message posted including that tag is dispatched into the user's stream.

    User subscribes to a type of message by an application

    Applications can define message types that are listed.

    A user can subscribe to just a type of message from that application.

    The application can emit that type and it will be dispatched to the subscriber, however the mechanism can also be used by the application to discover who has subscribed to that type in order to message the users directly with a custom message per user.

    Application updates its status

    Same as user updating a status

    Application sends a message to user

    Same as user sending a directed message

    Admin revokes a message from all streams

    Message is removed (or just permanently hidden) from all streams that the message occurs in.

    Non-goals

    Activity streams is not intended to be a person-to-person message system. While it's possible to send messages to users or groups and keep them private, it is still a timeline activity. Therefore we well not offer message deletion by users or apps, creating multiple "inboxes", other than filters on the timeline, etc.

    Technical Specification

    UI requirements

    API requirements

    Tag page
    You must login to post a comment.

    Copyright © 2011 MindTouch, Inc. Powered by