The Clojure model of state builds on the foundations of immutable data and update functions. This state model forms the basis for Clojure reference types. Given a way to safely share state, concurrent and parallel programming become safe, efficient, and straightforward.
Clojure components package data, transformations, state, and concurrency into larger units of code. These units can then be assembled into applications.