Thank you for your feedback. Ok, it seems that I am in the right area!
I was wondering where does the overall process start? I see ProcessEngines, ProcessEngine and ProcessEngineConfiguration classes. I was wondering where do they get invoked and used?
And, what classes downstream lead to the actual ActivityBehaviors being used?
Trying to get a mental map of the key objects here from start to actual work being performed.
A process instance is started (based upon a process definition) through e.g. the startProcessInstanceByKey method on the runtimeService.
The runtimeService can be retrieved from the ProcessEngine class, which gets built by a ProcessEngineConfiguration. The ProcessEngines class is just a simple helper class to build such an engine (but you can do this programmatically yourself).
The engine will inspect the definition and when it reaches a certain step (let’s say a user task), it will execute the associated behavior (e.g. the UserTaskActivityBehavior).