I'm working on an app for collectively writing stories and I have most of the basic functions done. Users can create Universes that act as containers for Characters, Locations, and Events. Characters have Experiences of those Events. Universes start out completely private, but the creator can grant three levels of access to other users. I keep track of who created a Universe, who create a resource within that universe, and who last made changes to that resource.
I would like to have some way to notify users of what has changed since they last logged in. What records have changed, etc. I thought about going the email route, but I don't think I want to do that since many small changes could cause many emails to be sent for the same thing, though eventually this might be the best choice. I'm thinking about maybe making a model that belongs to :user, that keeps track of changes, and using Observers to update the table. But I'm not really sure of the best way to do this. I could probably set up a cron job to crawl that table once a day and send emails to each user, that way I don't have multiple emails per user per day. I wonder what systems have other people used and what pitfalls have you run into?