To quote extensively from the Akka STM link[1]:
> Akka’s STM implements the concept in Clojure’s STM view on state
> in general. Please take the time to read this excellent document[3] and
> view this presentation[4] by Rich Hickey (the genius behind Clojure),
> since it forms the basis of Akka’s view on STM and state in general.
> It is based on two concepts:
> Persistent Datastructures: Immutable but with constant time access
> and modification. The use structural sharing and and an insert or update
> does not ruin the old structure, hence “persistent”.
> Managed References: Memory cells, holding an immutable value, that
> implement CAS (Compare-And-Swap) semantics and are managed
> and enforced by the STM for coordinated changes across many References.
> The Persistent Datastructures consists of a Map and Vector and are Scala
> ports of Clojure’s Map and Vector.
> The Managed References are implemented using the excellent Multiverse STM[2].
[3]
http://clojure.org/state
[4]
http://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey
On Oct 30, 5:19 pm, rektide <
rekt...@gmail.com> wrote:
>
> Rick Richardson mentioned Akka as perhaps the "go to" actor model for
> swarm. Akka's actors are actually transactors[1], "transactional
> actors", which are actors based around STM, in this case based around
> Multiverse STM[2], which you've already cited. Leveraging the
> existing Akka base would be a smart move, if Akka/Multiverse provide a
> sufficient base.
>
> [1]
http://wiki.github.com/jboner/akka/reference-software-transactional-m...
> [2]
http://code.google.com/p/multiverse/