i'ld like to review the terminology around events. i see following types of events:
1) ProcessService.event() & ExecutionImpl.event(): An event is sent to an execution. The execution propagates the event to the current activity behaviour. From the perspective of the activiti engine, this is an incoming event. Event here is overloaded. Signal could be an alternative, but that also has a meaning in BPMN. Finding a full PVM naming strategy that is completely non-conflicting with bpmn and other languages is not possible. But if we can avoid such name clashes, it's always better.
2) ScopeElement.eventListeners: Listeners can subscribe to process definition events. We currently have the concept of events in the process definition. A process element (like the process definition itself, an activity or a transition) can fire different types of events to which can be listened. Those events have an event name (String). So each event is uniquely identified by process element and the event name. Each event can have a list of listeners subscribed to it.
3) History events / Process event bus events. These are outgoing events produced by the engine. External tools should be able to subscribe to these events. History is build on this. But these events can also be used for other purposes. In this case, listeners are defined in the process engine. In our experience, there is some overlap in the events with the process definition event listeners like explained in 2, but the events in which these process-engine-listeners are interested typically differ.
The goal of this topic is to define the concrete meaning of the different events in the pvm and come up with precise pvm terminology.