The document discusses Clojure software transactional memory (STM). It explains that Clojure uses STM as an alternative to atoms, agents and vars for shared mutable state. STM provides ACID transactional guarantees and uses multi-version concurrency control. The document includes a diagram demonstrating two sample transactions operating on a shared reference with STM.