I'm currently negotiating with clients about how to best fulfill their requirements with Activiti. They're hoping to make heavy use of the "involvement" feature from activiti explorer, which creates identity links in the database and allows other users to see tasks. This seems to be a good idea for active tasks, but as best I can tell all the identitylink information is lost when a task is completed, meaning I can't get Activiti Explorer to be able to tell what completed tasks a user should be able to see.
So far I've restricted my patching/forking to the Activiti web apps, and have been able to use the engine untouched, and I'm hoping to keep it that way. But I'm not sure about the simplest way to handle this user involvement issue, so I'm looking for recommendations. My guess is that trying to change the ACT_RU_IDENTITYLINK table to be a history table, or adding a duplicate ACT_HI_IDENTITYLINK table would take extensive modifications to the engine. Would it be simpler if I stored the involvement information in another table and let Activiti Explorer look that up manually, without telling the engine about it? Is there an idea I'm missing that would let me avoid custom persistence altogether? Am I thinking about Activiti the wrong way?