Activities have been entirely rewritten in Pydio Cells. Inspired by social network interactions, activities are generated by internal events and stored in “denormalized” queues, which means that an event may trigger the creation of many activities.
Currently, the main objects interacting together are “Users” and “Nodes”, but this could be easily generalized to other aspects as well.
Basically, any object has an “Inbox” and an “Outbox” stack. Inbox represents the activities that were generated by other actors and that this object should be aware of. Outbox represents the object’s own activities. Typically, in a social network, the Inbox of a user could be seen as her wall, whereas her Outbox could be seen as her profile feed.
The figure below shows how a “node event” (e.g. file XXX created by user A in folder YYY) will be dispatched to the various boxes involved. An additional “Subscription" box will store the watches that a user can set on any file or folder.
When events arrive from the global bus, they are dispatched as follow:
- Post in the node Outbox (this is the own activity of this node)
- Post in the event user Outbox (the own activity of this user)
- Check other users for subscriptions, and if found, post in these users’ Inbox.
This is then done on the parent Node until the root.Back to top