The ExecutorFactory interface is used to obtain the preflight and actual executor instances for a particular step:
Executor getActualExecutor(AgentContext callContext) Executor getPreflightExecutor(AgentContext callContext)
The call context passed between preflight and actual execution steps need not be the same.