1. A method, comprising: receiving, by a first device, a first search request from a second device; communicating, by the first device, a second search request to an external data system, the search request based at least in part on the first search request; receiving, by the first device, raw data from the external data system obtained from raw data accessible by the external data system, the raw data fulfills at least a portion of the first search request; processing, by the first device, the raw data, as the raw data is being received, responsive to the first search request; while the first device is processing the raw data, streaming at least a portion of the raw data to the second device; wherein the processing the raw data further comprises: creating, by the first device, at least one interim search result from the raw data based on the first search request; sending the at least one interim search result to the second device.