thank you martin & jbarrez for your feedback, however i going to repeat my usecase and i will upload the code, you will find it attached by this message.
here we go, i have a business process in the domain of logistics, the activities in this business process like UserTasks ( request for trucks, load trucks, unload trucks, acknowledgment) these activities have a self generated data by the process Engine like (name of task, start time, end time, duration, user assigned to this task) these data when generated by process engine are stored in an in-memory database to be queried by the "History Service", I've implemented this method and it is going fine, that's one.
-second, my usecase is to capture the data generated by the process engine BEFORE it is stored in the in-memory database, which means i don't want to wait these milliseconds for the process engine to store them because these milliseconds are important to me. for this usecase, you martin and jbarrez presented for me a second method for my usecase which you reference it by option 2 in your comment, well according to your method i created a class which implements the "ActivitiEventListener" interface which captures all the events, so here i can know the events generated by my business process, ok that's good but here the missing thing is the data (information) which is very important, like this event for which activiti it belongs ? what is the activiti's name belong which generated this event ? when it started ? when it ends ? the answers of these questions are the information i need, i'm missing them in the method you offered to me.
how can i extract these information in the class implementing the "ActivitiEventListener" interface ??