Great article overall, but it makes the same mistake as many other Clojure overviews: implying that STM is the only means of managing state. Clojure, in fact has four main ways to do state, one of which is a (thread-local) normal variable. Each is appropriate for a different sort of stateful operation; STM is the most complicated.