Discussion that inspired this: https://github.com/mobxjs/mobx/issues/199
Two things that I need to clarify for MobX: It is not exactly that one mutation mutates other values, but it updates the derivations based on the observable values. In MobX you can still use actions, and even dispatchers if you want. It's not needed from a technical perspective, but you can still use them for readability.