You can organize app users into groups. Groups have their own Activity Feed, their own permissions and be a useful alternative to Roles, depending on how you model your data. Groups were originaly designed to emulate Facebook Groups, so they will tend to function about the same way Facebook Groups would.
Groups are hierarchical. Every member of the group /groups/california/san-francisco is also a member of the group /groups/california.
Groups are also a great way to model things such a topic subscriptions. For example, you could allow people to subscribe (i.e. become a member of the group and be alerted via Activities) to /groups/memes/dogs/doge or subscribe to all /groups/memes/dogs
|uuid||UUID||Group’s unique entity ID|
|type||string||Type of entity, in this case “user”|
|created||long||UNIX timestamp of entity creation|
|modified||long||UNIX timestamp of entity modification|
|path||string||Valid slash-delimited group path (mandatory)|
|connections||string||Set of connection types (e.g., likes)|
|rolenames||string||Set of roles assigned to a group|
|credentials||string||Set of group credentials|
|users||user||Collection of users in the group|
|activities||activity||Collection of activities a user has performed|
|feed||activity||Inbox of activity notifications a group has received|
|roles||role||Set of roles to which a group belongs|