An atom in Clojure is a variable that can be changed throughout your program (namespace). Because most data types in Clojure are immutable (or unchangeable) - you can't change a number's value without redefining it - atoms are essential in Clojure programming.