On the other hand, redux's reducers are harder to visualize at the beginning. Until you learn how the reducer works, every reference to "reducer" leaves you slightly confused.
I visualized redux's better with a simple example. It helps you to see how state and reducers interact.
All state was owned by the master MCU, slave MCU sent messages to the master requesting changes of state, the entire state for the slave CPU was then sent over with the requested changes.
Even what UI screen was shown was handled this way.
I was much more junior then, so the entire system wasn't event driven, all state was transferred every 33ms (iirc).
Redux is moderately more complex than that system, although my system was built in pure C and involved interop between C and C# running in an interpreter.