I've just spent the afternoon perusing the docs for Akka 1.0
(akka.io), which was recently announced.
It's a library written in Scala for building distributed,
fault-tolerant systems.  The library offers both a Scala API and a
straight Java API.

Interestingly, Akka borrows heavily from Clojure for its basic
concurrency constructs - specifically, it also offers agents and STM
refs inspired by Clojure's implementation.  Like Clojure, it offers
futures and promises (called dataflow variables in Akka) -- I assume
both languages were inspired by Oz/Alice ML on these features.

Akka goes further than Clojure, though, and also adds the kind of
fault-tolerant distributed actor-based system that Erlang is famous
for.  Scala has had actors for a while, but Akka's implementation of
actors supports distributed nodes, integration with transaction
system, supervisor hierarchies, and persistence/serialization.

It's interesting to ask the following questions:
1. Would it make sense to wrap Akka's Java API and use it from within
Clojure?  It seems like it might work, but it also seems a bit crazy
to have to use their alternative version of refs, agents, futures, and
promises.
2. Alternatively, how much effort would it take to flesh out Clojure's
offerings to match (or come close) to Akka's feature set?
3. What is Clojure's state-of-the-art for building distributed,
fault-tolerant systems with its existing feature set and/or leveraging
popular libraries?

What do you all think?

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
  • akka Mark Engelberg

Reply via email to