The unidirectional nature of Flux is what sets it apart from other modern frontend architectures. The reason that the unidirectional data-flow works is because action creators are the only way that new data can enter the system. However, this isn't strictly enforced by Flux, and this means that some errant piece of code has the potential to completely break our architecture.
In this section, we'll look at how something like this is even possible in Flux. Then we'll look at how views typically get their data from stores and whether or not there's a better way. Finally, we'll think about other components in our Flux architecture and see if anything in addition to store data can be made immutable.