diff --git a/context/adr/009-incremental-evaluation.md b/context/adr/009-incremental-evaluation.md index aab7b93d..76611600 100644 --- a/context/adr/009-incremental-evaluation.md +++ b/context/adr/009-incremental-evaluation.md @@ -38,6 +38,11 @@ wasm32-clean and serde-free). It provides: - operator state behind one trace interface (look up, read a range, apply a delta), so later store-memory work can page or compress it. +**Operators are self-contained.** An operator's state and behaviour depend only on its +inputs and its own state, never on a shared in-process global or on another operator's +internals. That keeps the graph distributable: in principle the model could run across a +cluster of machines. Nothing more is designed for that here. + There are no nested streams, no recursion operator and no timestamps beyond one clock. **The formula language is the query language.** What a request asks of the model beyond its axes and window (filters, aggregation, derived values) is written in formula text @@ -356,8 +361,8 @@ process, an edge is a function call. Every column incrementally maintains a width hint, which optimises grid sizing and reduces jitter. The hint is an integrated aggregate: a histogram from display width to -count, so a retraction is O(log d). Which end of the connection maintains it is open -question 1. +count, so a retraction is O(log d). Where in the graph the hint is computed is a +scheduling choice, made as an optimisation later. ### 11. Rollback and memory @@ -422,11 +427,4 @@ Step 8's required tests: ## Open questions -1. **Which end of the connection maintains a column's width hint?** The client end knows - which values are potentially in its viewport, so it can maintain the hint over the - values it holds, fed by the deltas it already receives. The host end can maintain it - over a whole column, through the graph, including values the client has never held. - It would then need the request's hidden rows (clause 7's overlay) and, for numbers, the - number format. *Recommendation:* the client end, over the values it holds. The host - computes a whole-column hint only where a client asks for one, as a filter operator - on its connection (clause 9). +None.