By default, Pocket uses a default allocation that conservatively over-provisions resources to achieve high performance. However, applications can provide hints about the job characteristics, such as its latency sensitivity, the maximum number of concurrent lambdas, and peak aggregate bandwidth. The controller uses these hints to determine a job's resource allocations (throughput, capacity, and the choice of storage media) to meet its requirements while minimizing the cost. For example, knowing a job's maximum number of concurrent lambdas allows Pocket to compute a less conservative estimate of the job's throughput requirement.