1. A system, comprising: one or more processors and memory that stores program instructions that when executed by the one or more processors implement a load balancer configured to: in response to receiving a particular work request, select a first candidate pool of worker nodes from a plurality of worker nodes of a distributed application, wherein the number of worker nodes included in the first candidate pool is based at least in part on a first workload variation estimate, wherein the first workload variation estimate is generated based on an analysis of respective workload metrics corresponding to at least a subset of worker nodes of the distributed application, wherein at least one workload metric of the respective workload metrics fails to meet a timeliness criterion; and assign the particular work request to a first worker node of the first candidate pool; and in response to receiving another work request, select a second candidate pool of worker nodes from the plurality of worker nodes, wherein the number of worker nodes included in the second candidate pool is (a) based at least in part on an updated workload variation estimate, wherein the updated workload variation estimate is smaller than the first workload variation estimate, and (b) smaller than the number of worker nodes included in the first target pool; and assign the other work request to a second worker node of the second candidate pool.