Django Activity Stream is a way of creating activities generated by the actions on your site.

It is designed for generating and displaying streams of interesting actions and can handle following and unfollowing of different activity sources.
For example, it could be used to emulate the Github dashboard in which a user sees changes to projects they are watching and the actions of users they are following.

Action events are categorized by four main components.

Actor. The object that performed the activity.

Verb. The verb phrase that identifies the action of the activity.

ActionObject. (Optional) The object linked to the action itself.

Target. (Optional) The object to which the activity was performed.

Actor, ActionObject and Target are GenericForeignKeys to any arbitrary Django object and so can represent any Django model in your project.
An action is a description of an action that was performed (Verb) at some instant in time by some Actor on some optional Target that results in an ActionObject getting created/updated/deleted.