Elm Architecture is a set of patterns and language features for managing the flow of data in a program. In a highly interactive application, the data flows through many components. The resulting interaction between these components can be quite complex. The Elm Architecture reduces this complexity by using some very clever techniques. We will find out what those techniques are in chapter 5.