1. A method, comprising: receiving a data object request; receiving a data stream; routing the data stream to a routing engine if the data stream is not being received in response to the data object request; and if the data stream is being received in response to the data object request: determining a predicted amount of resources used to cache the data stream at a network element, wherein the predicted amount of resources is derived from a dynamic module of resource usage per-data stream based, at least in part, on the type of data in the data stream; identifying current resources being consumed by the network element; and determining whether to cache the data stream based on a sum of the current resources being consumed and the predicted amount of resources used to cache the data stream at the network element.