Skip to content

🧠 核心原理

MeshFlow 的内核设计目标只有一个:确保复杂拓扑网络中的状态演化具备绝对的“因果确定性”

“逻辑力场”并非虚构的理论,而是一套将逻辑抽象为物理位能的设计模型。在以 SetRule 为核心的因果流中,MeshFlow 通过以下几个维度模拟物理世界的自发收敛:

1. 逻辑深度 = 物理高度 (Topological Gradient)

解决问题:复杂的依赖路径如何有序展开?

在 MeshFlow 中,每一个节点都处在不同的“海拔”上。节点间的因果关系构成了严密的 DAG(有向无环图)

  • 引力轨道:通过 SetRule 定义的先后顺序,实际上在全网建立了从高位向低位流淌的“引力轨道”。引擎将所有节点分配到不同的执行层(Layers),确保逻辑下游的节点物理顺位必然排在上游之后。
  • 自发演化:一旦源头数据发生变化,系统利用这种“势能差”驱动数据像水一样,顺着拓扑路径自动向下游传播,无需手动触发。这是解决“钻石依赖”冗余计算的基础物理规则。

2. 水位线调度 (Watermark):控制演化节奏

解决问题:如何防止节点在数据未对齐时“抢跑”?

如果说引力轨道决定了流向,那么水位线则控制了水闸

  • 同步栅栏:即便某个位于高水位的上游节点已经完成计算并试图顺流而下,水位线机制也会在关键节点进行拦截。它会检查该次演化周期内,下游节点的所有依赖项是否都已积蓄到“可提交”的水位。
  • 防抢跑机制:水位线确保了下游节点绝对不会在部分上游已更新、部分上游仍是旧状态的“失步”瞬间被触发。这彻底消除了逻辑上的“脏读”和中间态震荡。

3. 反应性剪枝与位移感知 (Reactive Pruning)

解决问题:如何实现计算密度的最小化,截断无效波纹?

并不是所有的变动都需要震荡全网。MeshFlow 通过“变更声明”与“位移检测”来截断无效的因果传播,就像在引力轨道上设置了干涸检测。

  • 精准反应表面 (notifyKeys):在注册节点时,你可以定义精准的“感知窗口”。
    • 全量敏感(默认):若未指明 notifyKeys,节点状态的任何变化都会向下游倾泻。
    • 外科手术式更新:通过显式声明 notifyKeys,只有特定的键值发生位移时,才会开启水闸。这在处理包含复杂 Metadata 的大型节点时,能显著降低拓扑震荡。
  • 语义位移剪枝 (Path Pruning):即便节点被唤醒并完成计算,引擎仍会比对其输出特征。若计算结果未产生实质性的语义位移(值未变),引擎将立即截断该路径,后续的引力轨道将保持静默。
  • 手动强制旁路 (forceNotify):在特定业务场景下,开发者可以调用 forceNotify 方法,强制掀起波浪唤醒下游演化,无论节点状态是否发生实质改变。

4. 版本令牌 (Version & Token):抵御时空错位

解决问题:慢速异步任务如何不覆盖快速任务的新值?

在异步联动中,经常出现“旧值后到”的情况(Race Condition)。MeshFlow 通过 Version(逻辑版本)Token(执行令牌) 守护状态一致性:

  • 逻辑时钟:每一次源头引发的跌落,都会产生一个全局递增的 Version
  • 令牌校验:异步任务在启动时会携带当前的 Version Token。当任务完成准备提交结果时,引擎会校验令牌。如果检测到更高的版本已经产生(意味着有更新的水流冲刷而过),旧版本的异步结果将被强制丢弃,确保状态永远向最新的逻辑终点收敛。

5. 静态环路熔断 (Cycle Detection)

解决问题:零容忍反引力的逻辑死循环。

在纯粹的因果演化 (SetRule) 中,时间与引力的流逝是单向的,犹如瀑布无法倒流。

  • MeshFlow 会在规则编排完成、正式运行前,进行严格的有向无环图 (DAG) 校验
  • 一旦检测到因果链条中存在首尾相连的循环依赖(企图让水往高处流),引擎将直接抛出异常并熔断推演,从根源上杜绝内存溢出和无限递归。