**Problem**
When the #interactiontimeline was created, [[ https://redux.js.org/ | Redux ]] and [[ https://redux-observable.js.org/ | Redux Observable ]] where the best solutions for state management in [[ https://reactjs.org/ | React ]].
Since that time, React [[ https://reactjs.org/blog/2019/02/06/react-v16.8.0.html | 16.8 ]] has been released which provides first-class state management with [[ https://reactjs.org/docs/hooks-reference.html#usereducer | useReducer() ]] and side-effect management with [[ https://reactjs.org/docs/hooks-reference.html#useeffect | useEffect() ]].
**Solution**
Modernize the application by replacing [[ https://redux.js.org/ | Redux ]] and [[ https://redux-observable.js.org/ | Redux Observable ]] with [[ https://reactjs.org/docs/hooks-reference.html#usereducer | useReducer() ]] and [[ https://reactjs.org/docs/hooks-reference.html#useeffect | useEffect() ]] respectfully.
To ease the transition, it would probably be best to use [[ https://reactjs.org/docs/hooks-reference.html#usecontext | useContext() ]] since [[ https://redux.js.org/ | Redux ]] uses context internally to make the store available to components.