When using mycore with large sets of data the event handling system goes sideways. The main problem is, that its synchronous and can take forever to store something.
1. updating a maintitle[@heritable=true] on a root object with 10000 descendants
2. indexing a large amount of data
Both those task are done in the event handler and executed successive. So make it asynchronous, right? Well, this could lead to database transaction race conditions because we don't know what will be executed first.
To address this problem we enhance the MCRSession with an onCommit(Runnable task) method. Those task will be executed AFTER the last database transaction was commited.