The workers running the asynchronous events execute up to 1000 different events before stopping themselves. This model is completely different than the usual "process and die" under which large parts of Tuleap has been designed and lead to unexpected behaviors with the current codebase.
This can be easily seen with the tracker notifications:
1. In a tracker with the notifications enabled, create a new artifact -> you receive an email
2. Disable the notification of this tracker
3. Create a new artifact -> you still receive an email
The reference to the object representing the tracker has been kept in cache so when the event of the creation of the second artifact is processed, it looks like the tracker still has the notification enabled since the object kept in memory has not been updated.