May I know few more details about Executions and variable scope

Hello experts,

May I know little be more details about DelegateExecution Vs CoreExecutionContext

I noticed that DelegateExecution extends BaseDelegateExecution extends VariableScope.

Context.getCaseExecutionContext().getExecution() returns CaseExecutionContext.

CaseExecutionContext extends CoreExecutionContext.

AbstractVariableScope scope = Context.getCaseExecutionContext().getExecution();

I noticed that notify(DelegateCaseExecution delegateCaseExecution)::CaseExecutionListener

delegateCaseExecution & Context.getCaseExecutionContext().getExecution() are same object reference.

If I set a variable with DelegateExecution as a scope i.e. delegateCaseExecution.setVariable(VAR_NAME, VALUE), does that mean such variable is visible to all the activities with Process or Case, including the call activity? Variable life scope is entire process/case execution?

delegateCaseExecution.setVariableLocal(VAR_NAME, VALUE), does that mean such variable is visible to particular activity execution? Variable life scope is limited to that activity execution?

Thanks in advance.

Best regards,
Suhas Madap.