1. An apparatus for resolving a query received from a first node in a network by a second node in the network, the apparatus comprising: a processor located at a second node in the network; and a computer readable storage medium containing an executable program that, when executed by the processor, causes the processor to perform steps comprising: adding, by the second node, a third node to a data structure that dynamically traces a propagation of the query, wherein the third node is a node in the network which the second node believes has information responsive to a first portion of the query; forwarding, by the second node, the first portion of the query to the third node; receiving, by the second node, a first response from the third node, wherein the first response contains information responsive to the first portion of the query; and forwarding, by the second node, a second response to the first node, wherein the second response includes at least some of the information contained in the first response.