A system to process a request, the system comprising: an application program interface module to receive, over a network, the request from a client machine, the request comprising a job that is associated with data, the request received at an application program interface; and a peer-to-peer network of processing nodes, one of said processing nodes being adapted to in response to receipt of the job, generate a job event for the job and process the job for a predetermined amount of time, wherein processing of the job includes: generate a plurality of sub-jobs by dividing the job into one or more quantities of work, store the sub-jobs, and store a sub-job event for each sub-job in a sub-job queue, the plurality of sub-jobs respectively comprising at least one task that corresponds to a portion of the data, the processing node being adapted to schedule the plurality of sub-jobs for parallel processing based on an availability of resources that are respectively utilized by the sub-jobs by moving sub-job events for corresponding sub-jobs to a sub-job retry queue making the sub-jobs visible to other processing nodes in the peer-to-peer network in response to the identification of available resources, the peer-to-peer network of processing nodes being adapted to identify the sub-job events in the sub-job queue or in the sub-job retry queue to parallel process the plurality of sub-jobs and to generate task results that are respectively associated with the plurality of sub-jobs; in response to expiration of the predetermined amount of time, move the job event to a job retry queue for an associated time out; and in response to expiration of the associated time out, retrieve the job event from the job retry queue for further processing. an application program interface module to receive, over a network, the request from a client machine, the request comprising a job that is associated with data, the request received at an application program interface; and a peer-to-peer network of processing nodes, one of said processing nodes being adapted to in response to receipt of the job, generate a job event for the job and process the job for a predetermined amount of time, wherein processing of the job includes: generate a plurality of sub-jobs by dividing the job into one or more quantities of work, store the sub-jobs, and store a sub-job event for each sub-job in a sub-job queue, the plurality of sub-jobs respectively comprising at least one task that corresponds to a portion of the data, the processing node being adapted to schedule the plurality of sub-jobs for parallel processing based on an availability of resources that are respectively utilized by the sub-jobs by moving sub-job events for corresponding sub-jobs to a sub-job retry queue making the sub-jobs visible to other processing nodes in the peer-to-peer network in response to the identification of available resources, the peer-to-peer network of processing nodes being adapted to identify the sub-job events in the sub-job queue or in the sub-job retry queue to parallel process the plurality of sub-jobs and to generate task results that are respectively associated with the plurality of sub-jobs; in response to expiration of the predetermined amount of time, move the job event to a job retry queue for an associated time out; and in response to expiration of the associated time out, retrieve the job event from the job retry queue for further processing.