Just to make this discussion less abstract: is a groupby operation monotonic?
Consistency between two accumulators is easy, they just sum their states.
for example as you said: global_sum() = accum1.sum() + accum2.sum()
global_min():
accum3 = [accum1.min(), accum2.min()]
global_min = accum3.min()
any non-monotonic computation can be split into monotonic, where they process the bulk of the data, and folding the results to product the final resultA better example would be reachability analysis in a DAG - here you really do have monotonicity failure when merging results from multiple workers.
for example global AVG can be expressed as SUM()/COUNT()
although AVG is not commutative, SUM() and COUNT() are commutative and can be run in scatter/gather mode and offloaded to individual nodes