<div dir="ltr">As I understand, the local engine runs the task immediately whereas the scalable engine sends it over the message queue to one or more executors.  <div><br></div><div>In what circumstances would we see a Mistral user using a local engine (other than testing) instead of the scalable engine?</div>
<div><br></div><div>If we are keeping the local engine, can we move the abstraction to the executor instead, having drivers for a local executor and remote executor?  The message flow from the engine to the executor would be consistent, it's just where the request will be processed.  </div>
<div><br></div><div>And since we are porting to oslo.messaging, there's already a fake driver that allows for an in process Queue for local execution.  The local executor can be a derivative of that fake driver for non-testing purposes.  And if we don't want to use an in process queue here to avoid the complexity, we can have the client side module of the executor determine whether to dispatch to a local executor vs. RPC call to a remote executor.</div>
<div><br></div><div>Thoughts?</div><div><br></div><div>Winson</div></div>