Since some information regarding groupware objects like assigned tags or links/relations to other objects or email messages are stored in separate "relation" objects, the audit trail storage needs to provide abilities to connect changes to relation objects with the actual groupware object they relate to. From the user perspective, information stored in relation objects belongs to the groupware object and therefore changes to these "properties" should be part of the audit trail of a particular object.
The very basic step to combine the changelog of a relation object into the one of a related groupware object is to enable querying for relation objects that have (or had) a relation to a given groupware object identified by its UID. With the existing storage layout based on event notifications, solely queried by their keys (with key filters), a secondary index for member uuids shall be maintained. This, however, requires egara to be able to extract the related member uuids from the XML data of such a relation object.
This mock visualizes the basic process of an event notification recevied by egara and how various parts of such an event are stored in the Riak database.