In my current implementation, I initially separated the reactive scheduler from the “normal” propagator scheduler — which was a mistake, since one of the strengths of the paradigm is unification. I’m planning to merge them so that reactive updates, logic propagation, and constraint solving can all coexist in the same scheduling loop.