Redux is another one of those software patterns that most ppl dont need but use anyway.
Enforcing a global structure on how events can mutate state is one of the steps to writing correct code, IMO.
True, mindlessly applying patterns is silly, but not applying any design pattern means you will have a random software design (aka. spaghetti code) which is way worse.
Funny, I started writing a blog post about this very subject today.
I come from Object-oriented background therefore i find the Redux-way (functional programming) hideous.