As an FYI: my React/Redux links list at https://github.com/markerikson/react-redux-links has a section on Redux Architecture ( https://github.com/markerikson/react-redux-links/blob/master/redux-architecture.md ), which includes a variety of articles on approaches and best practices for writing Redux apps.
A couple other thoughts:
- Action creators definitely do not _have_ to be pure. You can write them that way if you want, but that’s not a requirement.
- Dispatching multiple steps in a thunk is a valid approach if you want to go that way.
I recently wrote a blog post called “Idiomatic Redux: Thoughts on Thunks, Sagas, Abstraction, and Reusability”, which discusses the pros and cons of various aspects of thunk usage: http://blog.isquaredsoftware.com/2017/01/idiomatic-redux-thoughts-on-thunks-sagas-abstraction-and-reusability/ . I also wrote an earlier post called “Idiomatic Redux: Why use action creators?”, which looks at some patterns for consistent code: http://blog.isquaredsoftware.com/2016/10/idiomatic-redux-why-use-action-creators/.