As a way of promoting and enforcing standards across our repositories/applications that use redux, we've decided to adopt the flux standard action (FSA) standard for our action objects. The standard is very concise, logical, and easy-to-learn. In addition, there is a
flux-standard-action module published to npm that exposes an
isFSA function for testing whether an object adheres to the standard. The existence of this utility was a big factor in our decision to adopt FSA since a standard that isn't (easily) enforceable isn't much good at all. Accordingly - and as noted in Testing Strategies - we include a test to prove that each action created by our action creators passes
isFSA in our redux unit tests.
There has been some controversy around the way that FSA handles errors, and we at Tidepool agree with @gajus that it would be better to put the
Error object in the
error field of an action, leaving the
payload free to contain other information that might be needed to effect a change in the app's store. (We note this here as a reminder to ourselves to check occasionally to see if the standard has changed...)