This is related to thoughts on performance, specifically the role type services.
Performance could be improved if the type services cached information they gather when resolving roles. (Such as org parent/child relationships or fiscal officer user IDs.) Unfortunately, since the data can change, it's not always practical.
But, if there was a standard way to notify interested objects that a business object had just been saved, they type services could purge their cache entries appropriately.
So, what about a "BusinessObjectObserver" class. It would have a two methods:
List<Class<? extends BusinessObject>> getInterestedBusinessObjectClasses()
void businessObjectSaved( BusinessObject bo )
Upon service startup, the BusinessObjectService would perform a "getBeansOfType" on the spring context and register all of them in a local HashMap<Class<? extends BusinessObject>,List<BusinessObjectObserver>> which it would use in the BO service's save methods.