4 ms·
The problem IMHO is that there aren't a lot of problems that are particularly suited to STM. I can't think of many instances where I would use STM over CAS (e.
by lilactown 6y ago
The problem IMHO is that there aren't a lot of problems that are particularly suited to STM.
I can't think of many instances where I would use STM over CAS (e.g. an atom in Clojure); and the times I have needed something akin to STM (e.g. building an incremental dataflow engine with transactions) I wanted more control over the runtime behavior than Clojure's STM provided.
Plenty of business systems need transactional guarantees and either durability or distribution (or both), which makes an external store like Postgres or Redis a ton more attractive than STM within a single process.
- breatheoften 6y agoSome manner of pluggable STM protocol to define a standard programming model on top of conflict detection would be pretty nice tho imo. Features like postgres's serialized transaction isolation -- which as a non expert I think of as basically database implemented STM -- are really flexible -- but most ecosystems programming models don't really expose this capability in a full proof and natural way. You have to work to too hard to take full advantage of the capability ...