I have to nitpick your “How Redux Works” section a bit:
- “All reducers get the action” is technically only true if you’re using the provided combineReducers() function. Granted, that’s certainly the recommended common setup.
- Object key iteration is now reasonably well-defined (see http://www.2ality.com/2015/10/property-traversal-order-es6.html )
- If you ARE using combineReducers(), two reducers are not going to be receiving the same state, as each one will have a separate key:state portion it’s responsible for. And, if they’re not receiving the same state, then why would execution order matter?
All that said, there’s certainly reasons to want to have more advanced reducer setups. I don’t quite follow all the use cases and ideas you’re proposing here, but I’ll keep an eye on it for later investigation.