This document summarizes software transactional memory (STM) as an alternative to lock-based concurrency. STM allows shared memory access through atomic transactions composed of reads and writes. Transactions are verified and committed to memory if read values match, or aborted if not. While STM addresses problems with lock-based approaches like deadlocks, concerns remain regarding performance overhead and ease-of-use for practitioners. The document reviews STM techniques and research on formal correctness, scalability, and semantic difficulties.