Looking your problem definition you are concerned about project quality and maintenance.
Before Redux it is quiet difficult. But we can do better with libraries like Redux, Redux-thunk, etc.
We can have proper project structure, data flow and testing.