A GENERIC ReactiveDag.RecomputeStrategy for graphs declared with
ReactiveDag.Node. Because Node standardizes where a cell's op module lives
— cell.meta.compute, a ReactiveDag.Op — the dispatch is uniform and the
host no longer hand-writes it:
ReactiveDag.Drain.run(plan,
recompute: ReactiveDag.Node.Recompute,
key_rule: ReactiveDag.Node.KeyRule)This is the per-key-Elixir shape (the op is a behaviour module the host
supplies). A host whose recompute is set-based SQL keyed by cell.op (the
compliance portal) still writes its own strategy; this generic one serves the
common "meta.compute is a ReactiveDag.Op module" case, of which cascade is the
archetype.
A LEAF (or a cell with no compute) passes its claimed keys through as changed — a leaf's tuples were written by its source; if it reaches recompute at all, its claimed keys already ARE its changes.