1. A computer-implemented method for performing a process, the method comprising: (a) receiving a request to perform a process, the process comprising a plurality of tasks and at least a scheduler rule (b) receiving a plurality of checkpoints associated with the process, each checkpoint comprising checkpoint state data and at least a respective checkpoint rule governing execution of the process; (c) determining a first task of the plurality of tasks to be scheduled into a priority queue, in accordance with the scheduler rule; (d) determining the first checkpoint of the plurality of checkpoints that is to be the first checkpoint used in processing the first task, in accordance with the scheduler rule; (e) creating the checkpoint state data for the first checkpoint; (f) saving the checkpoint state data for the first checkpoint' (g) processing the first task in accordance with the checkpoint rule associated with the first checkpoint; (h) determining the next task in the plurality of tasks to perform, based on the checkpoint rule associated with the first checkpoint (i) updating the saved checkpoint data for the first checkpoint with the data and state associated with the first task; (j) repeating steps (c) through (i) for each subsequent task and checkpoint, in accordance with the respective scheduler and checkpoint rules, until a predetermined condition has been reached.