This document and the interface it describes is subject to change
To scry is to perform a read from Urbit's referentially transparent namespace. In other words, it's a function from a path
to a noun
(although in some cases, the resulting type may be more constrained). Up to now, we have only supported scrying within the same ship, but from Kelvin 413, it will become possible to scry from other ships.
At the moment, when you think of scry you probably think of .^
. However, since networking is asynchronous, this is not a suitable interface for remote scry. Instead, a ship that wants to read from a remote part of the namespace will have to pass a %keen
task to its Ames, which then cooperates with Vere to produce the desired data. In some future event when the result is available, Ames gives it back as a %tune
gift. From the requester's perspective, this is the entire default lifecycle of a remote scry request.