Почему redux лежит на плечах фронтендера, когда это работа бэкэндера?
Когда юзер находится в вашем веб приложении, он создает определенные действия. Действия связаны с состоянием. А redux это набор утилит для глобального хранения состояния(state) в приложении.
Таким образом, вы создаете какие-то объекты и они меняются в зависимости от состояния. Пользователь это видит как некие различные реакции на его действия.
Redux хранит не данные. Redux хранит состояние приложения, причём именно его фронтовой части. Вот по этому redux и подпадает под ответственность фронтендера