Computational tasks in a workflow are generally considered as atomic transactions: the WFMS submits the task to the calculator via a scheduling software, which then reports back to the WFMS (by polling or pushing) once the calculator task is completed (successfully or with an error). This model is often imposed by necessity of dealing with computational scheduling software, which may not make intermediate results available to the WFMS for performance reasons. This also encourages splitting complex tasks (e.g. during geometry optimisation using energy gradients computed by finite differences) into smaller pieces (e.g. single point energy calculations of the displaced geometries) for optimal use of resources via task scheduling, with any decision making (e.g. evaluation against convergence criteria, and, if necessary, a next optimisation step) carried out at the workflow level.