1. A system for providing a distributed casual search, the system comprising an originating server comprising: a memory storage; and a processing unit coupled to the memory storage, wherein the processing unit is operative to: determine that a first request cannot be fulfilled by information associated with the originating server; post the first request to a distributed request ring; receive a response to the first request from a remote server, the response including current data, the remote server having a foreign reference written in response to receiving the first request by the remote server and employed to update the current data on the originating server when; the current data stored on a data store associated with the remote server is updated, a predicate created by an owner of the current data is satisfied, the predicate determining whether the updated current data is propagated to the originating server; save, at the originating server, the response to the first request; receive a second request from a second client; and determine that the second request can be fulfilled by the saved response to the first request.