1. A computer implemented method performed by one or more processors for balancing a workload, the method comprising the following operations: identify a workload for distribution among a plurality of work processes; assign a subset of the workload to a plurality of work processes for processing of the subset of the workload, the subset of the workload assigned based on an application-dependent algorithm and further divided into work packages, each work package assigned to a different work process; receive an indication of availability from a particular one of the plurality of work processes that has completed processing of a particular work package assigned to the particular work process; and assign a new subset of the workload to the particular one of the plurality of work processes in response to receiving the indication of availability.