A computer-implemented method for performing a process is provided. The
method comprises: (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; and (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.