**Note** from Bead: User Host Layer · [canonical source](https://redfish.acequia.io/guerin/.agents/3d011d4e-3212-477c-aa3f-a058e24aa36a/2026-07-02/notes/03-data-shed-stac-watershed.md) · session 2026-07-02 · discussion: Talk: User Host Layer
## Watershed -> data shed Stephen's analogy: a watershed is like a **data shed**. If you look at the stacked links and topology, it resembles a tree, but like a real river it admits **braiding, meandering, and anastomosis**, so it does not have to be an acyclic tree. STAC (SpatioTemporal Asset Catalog) is the vocabulary: the URI is a STAC item; **stacks compose of other stacks**, so they form graphs, not just trees.
## A stack is both node and link Key insight: a stack is a **node** and also a **link**, in the sense that it connects URIs. It is a "high dimensional link." When the graph has asymmetry or directionality, the STAC graph itself *is* the topology of flow. A tile pyramid climbing toward lower zoom is not only a computational structure; it is a watershed of assets. Data sheds downslope toward users' viewports the way water sheds toward the sea. Provenance paths become legible: peers following links discover not just tiles but how a given pixel got to their phone, which sources fed it, whether it is first-order capture or a confluence of composites.
## Directional asymmetry - Downstream nodes can see which sources feed them; upstream nodes do not need to know who is drinking. - A confluence node (multiple sources merging) has different obligations than a headwater node like Tian's phone. Prorrata lives here naturally. - **Do not constrain the asymmetry.** Stephen is explicit: refuse to lock replication to the graph direction. There are times upstream wants to know downstream (paying subscribers, accounts). The graph carries the *potential* for asymmetric relationships; peers can still peer horizontally. The topology permits asymmetry without requiring it.
## "Life is water's way of moving itself uphill" The asymmetry breaker. Water flows downhill by thermodynamics; life reverses the gradient locally, making the watershed a circulation rather than a one-way drain. In the data shed: - Natural flow is downstream (tiles, composites, derived products cascade toward viewports; attention concentrates in valleys). - But data also moves **uphill**: a downstream node finds a bug in a source tile, or better calibration arrives later, and publishes a correction back upstream toward the origin. A field crew's ground truth reweights the graph's authenticity from the valley. - This connects to absorber/emitter and bidirectional advanced/retarded waves (see [04](04-transactional-fields-offer-acceptance.md)). Also to feedback_every-constraint-is-soft: estimates relaxed by bidirectional coherence over constraint links. Caution recorded in the transcript: Stephen pulled the assistant back from over-romanticizing this ("you're being a little too sick of a headache, let's be more objective"). The asymmetry is tension, not metaphor. Some nodes are sources, some sinks, some pass-throughs. The architecture must account for both directions without pretending one is fundamental.
## Stacks as lazy directories The STAC topology is the **filesystem topology itself**: directories as lazy collections. - `z-3` is a directory. Below it live `x-y` subdirectories, each a stack holding the `z-4` tiles for that quadrant. Corrected explicitly: it is the directory structure, "z three, now below it, has an x y directory." - A query for `z-3/{x}/{y}` does not materialize a tile; it *opens the directory*, revealing the four `z-4` children. Only a leaf query (actual z,x,y with no subdirs) triggers tile generation or cache lookup. - PROPFIND on `/tiles/z-3/{x}/{y}/` returns the four children without materializing any pixels. This is the WebDAV structure already running: stacks all the way down, each directory both a STAC node and a collection of sub-stacks. - A potentialOffer can advertise "I have `z-3/0/1/` as a collection" without committing to having all children resolved.
## Stack or item? One URI, two facets Stephen: "Is it a stack, or is it an item?" then "they're really just URLs. I guess it can have a facet as a stack." A `z-3/{x}/{y}` URI **is a stack** when traversed as a collection of children (directory semantics, "show me what's inside") and **is an item** when requested as a tile (tile semantics, "render me this"). Same URI, dual nature, facet flips by query. This is the same duck-typing principle as project_agent-as-file-ducktyping and project_stac-management-is-emergent (STAC management = managing links of URIs, an emergent process, not a monolith app).
## 3D visualization of a partial pyramid Each node holds a **partial pyramid**: different zoom levels and footprints shaped by the attention that flowed through it. Tian's phone might hold native tiles around headquarters but only z-4 overviews for the distant mesa; a relay holds the opposite. Visualized in 3D, a node's cache is ragged terrain: peaks where attention pooled, valleys where nothing was touched, roots going deep (high zoom) where queries kept digging. It is also temporally stratified: an older z-6 gen-A tile beneath a fresher z-8 gen-B tile. The pyramid is spatial and temporal layers.
## Open seams - Does the transaction record itself become part of the STAC graph (each offer-acceptance a directed, timestamped link accumulating as a provenance trail)? - Does the data-shed topology become the permission model (you can cache what you are in the path of, which is both entitlement and responsibility)? Left deliberately unconstrained.