Audit logs already provide lots of helpful information about history of any record. In addition, we wish to record specific actions users perform and inform the right people about these actions.
Example: Pushing passport data to Genesys
An institute is updating passport data in batches of 50. Every upsert would fire off a record saying that "Genebank PHL001 updated 50 records of their passport data".
Example: Dataset for review
When the partner has completed the forms for publication of a Dataset on Genesys, the hit the Send for review button which triggers a service method where the Dataset is then set for Review by the Genesys team.
If that API action is successful, the system should fire off a message saying "Dataset So and so title is ready for your review". But because the owner can still reopen the Dataset for editing, any record about previous event should be removed from the system.
With such records in place, we can send email notifications to persons who need to know that something happened in Genesys. As actions happen, we scan who needs to receive notifications and make a database entry for them.
My old code at https://github.com/kenorem/iita-common/tree/master/src/org/iita/notifications might help.
Before you start, we should discuss.