Nice overview, thanks for posting! I especially agree with your assertion that you don't need redux-saga unless you are doing interactions between multiple long-running actions. Some nice examples there. I did however spot a few errors in some of the code blocks, that I think are worth mentioning in order to minimise confusion for newcomers: in the RegistrationFormManager.js code block (right at the start of the HOC bit), this.submissionInitiated(data) should be this.props.submissionInitiated(data) for the very last code block, I get the gist of it, but I think you meant for it to be more like the following: export const registrationFormSubmitted = formData => dispatch => co( function * ( ) { dispatch(registrationFormSubmissionInitiated()); try { let { body } = yield request.post( '/api/users' , formData); dispatch(registrationFormSubmissionSuccessful(body)); } catch (error) { dispatch(registrationFormSubmissionFailed(error)); } });