1. A system comprising: a virtual execution environment; a block granularity caching engine; a cache; wherein, in operation: a process associated with a stream-enabled application is executed in the virtual execution environment; the virtual execution environment intercepts a resource request for a resource from the process executing in the virtual execution environment; the virtual execution environment identifies one or more blocks that are associated with the resource; the virtual execution environment makes a block request requesting a block associated with the resource; the block granularity engine makes the block request available to a streaming server so as to prefetch a predictively streamed block based on the block request wherein the predictively streamed block is ordered in a priority queue by probability, based at least in part on the requested block, that the predictively streamed block will be requested; the block granularity engine receives blocks of the stream-enabled application, including the predictively streamed block and the requested block, within an interactivity threshold; the block granularity engine checks the cache for blocks to satisfy the block request; the block granularity engine provides the predictively streamed block to the virtual execution environment if the predictively streamed block is found in the cache; the virtual execution environment satisfies the resource request of the process using the predictively streamed block.