Effects are generally used to handle asynchronous calls and the heavy lifting for reducers. You should let your reducers update your state, but if you ever need to perform any calculations or do something asynchronous like talk to a web server, that's when you should use effects.