1. A method for assessing routes in a network of connected nodes, wherein a querying node propagates a query through multiple routes of intermediate nodes to a data source node and the data source node returns data to the querying node, and wherein the method at the data source node comprises: receiving, by one or more processors, a query instance comprising metadata with route information of a route of intermediate nodes in a network that the query instance has travelled through from a querying node to the data source node, wherein the network is a network of connected nodes through which the query instance is propagated; comparing, by one or more processors, the route information to a route policy; responding to, by one or more processors, the query instance that meets the route policy by returning a query response to the query instance via the route of intermediate nodes used by the query instance, wherein the query instance is a first query instance, wherein the route of intermediate nodes in the network is a first route of intermediate nodes in the network; receiving a second query instance at the data source node, wherein the second query instance and the first query instance present a same data query, wherein the data source node received the second query instance after receiving the first query instance, and wherein the second query instance used a second route of intermediate nodes in the network that is different from the first route of intermediate nodes in the network; determining, by one or more processors, that the second route of intermediate nodes is faster than the first route of intermediate nodes; and in response to determining that the second route of intermediate nodes is faster than the first route of intermediate nodes, sending the query response to the querying node via the second route of intermediate nodes.