Yaposh engine and its executors used to evaluate yaposh plan. The execution of engine consists from changes of inner state of engine. The engine has for each drive its own stack of executors, so if plan has 5 drives, engine has 5 stacks. Each stack consists from executors, in each iteration, engine will choose one stack and execute the executor on its top.
The executor will do perform some kind of action and returns object (FireResult) that engine uses to change the state of stack, depending on FireResult, engine can clear the stack, add new element on the top or something else.