1. A method for performing a storage operation, the method comprising: receiving a first data stream having first data, the first data being obtained by a first application-specific data agent that is separate from a first application and that monitors storage operations performed by the first application wherein the first data comprises a first plurality of files associated with the storage operations performed by the first application; receiving a second data stream having second data, the second data being obtained by a second application-specific data agent that is separate from a second application and that monitors storage operations performed by a second application wherein the second data comprises a second plurality of files associated with the storage operations performed by the second application; combining the first data stream comprising the first plurality of files and the second data stream comprising the second plurality of files into a single stream of one or more data chunks, wherein at least a portion of the first plurality of files from the first data stream and at least a portion of the second plurality of files from the second data stream are combined into a first data chunk of the one or more data chunks; and transmitting the one or more data chunks to a storage medium.