It is important to understand how multiple jobs are used to process steps for a procedure. A procedure uses multiple asynchronous jobs to run the programs identified within its steps. Starting a procedure starts one job for the application group or node. For procedures associated with application groups, an additional job is started for each of its data resource groups. These jobs operate independently and persist until the procedure ends. Each persistent job evaluates each step in sequence for work to be performed within the scope of the step program type. When a job for a data resource group encounters a step that acts on data groups, it spawns an additional job for each of its associated data groups. Each spawned data group job performs the work for that data group and then ends.