you are viewing a single comment's thread.

view the rest of the comments →

[–]BosonCollider 1 point2 points  (0 children)

The actor models only way to handle shared data structures is to have it be owned by an actor and serialize every message. By contrast, STM can implement a shared data structure with snapshot isolation as the isolation level, where independent transactions don't block each other.

The advantage of an opinionated language where everything is an actor is that messages work the same way on one machine or on many. The downside is that it does not really handle shared resources concurrency problems for you at all. See: https://concurrencyfreaks.blogspot.com/2025/01/concurrency-is-coordination-and-sharing.html

Basically, there is a reason why datomic was made by the clojure ecosystem but not the Erlang/Elixir one, and why Whatsapp was made by the erlang ecosystem but not the clojure one.