純粋性はplanを常駐クエリに変える前提条件である
worldを変更イベントで維持される実体化ビューにするという構図は、データベースの増分ビュー維持 (incremental view maintenance)そのものである。さらにDBSP / differential dataflowの系統は「入力の差分から出力の差分を直接計算する」一般理論を与える。これをIaCに当てると、plan自体を常駐クエリにできる。
desiredとworldの差分(= plan)を、worldの変更イベントが届くたびに増分更新し続ける。するとcarina planは「計算する」コマンドから「維持されている差分を表示する」コマンドになる。
ここで言語側の性質が効く。増分化が安全なのは参照透明な計算だけであり、planが(source, world)の純関数であること — 静的段階の全域性と純粋性 — は、この最適化の前提条件をちょうど満たしている。汎用言語埋め込み型のツール(synthが外界を読みうる)では、この変換は同じ安全性では成立しない。つまり純粋性は「読みやすさ」や「検証しやすさ」だけの性質ではなく、性能最適化の可能性そのものを開く条件である。
よりエンジニアリング寄りの実現形は、コンパイラ/ビルドシステムの依存追跡である。Build systems à la carte、Salsa(rustcのクエリ基盤)、self-adjusting computation (Acar)の核は「入力が変わっていなければ再計算しない、変わっても依存の影響範囲だけ再計算する」ことにある。world側の変更イベントと組み合わせると、「VPCの1属性が変わった → それに依存する差分計算ノードだけ無効化 → planの大半はキャッシュヒット」という増分planが組める。
根拠の確度
planが(source, world)の純関数であることはソース・ドキュメントで確認済み。一方、DBSP / differential dataflow / Build systems à la carte / Salsa / self-adjusting computationへの言及はAIの学習データ由来で、一次ソース未確認。増分plan案は実装・実測を伴わない。