1. A computer implemented method for servicing streaming media comprising: receiving, at a computer system, said streaming media; determining, at said computer system, an allocation of available processing and memory resources; performing, at said computer system, a first multi-stage service on said streaming media; caching, at said computer system, an intermediate result from one of the stages of said first multi-stage service, wherein intermediate result types are each associated with a different combination of an amount of memory resource and an amount of processing resource and wherein the type of said intermediate result to be cached is selected according to said available processing and memory resources that corresponds with one of said combinations; and performing, at said computer system, a second multi-stage service on said intermediate result.