Clojure STM has 3 big unique features:
- Implements MVCC snapshot avoiding transactions restarts on read invalidation.
- Ensures references on read-writes provides a kind of manual control over resource acquisition order.
- Has explicit commute which reduces retries on commutative writes.