This document discusses 7 challenges of using Redux including: 1) Async programming and cancelling promises, 2) Preventing DOM mutations from libraries, 3) Working with the URL bar in single page applications, 4) Piggybacking on componentDidMount to generate data, 5) Using imperative programming patterns rather than functional patterns, 6) Mental overhead of action creators and reducers, and 7) Determining if reactive streams from Redux Saga are needed. The author provides recommendations for addressing each challenge through further research and adopting functional programming principles.