Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Different Scala Actor Implementations Overview

I'm trying to find the 'right' actor implementation. I realized there is a bunch of them and it's a bit confusing to pick one. Personally I'm especially interested in remote actors, but I guess a complete overview would be helpful to many others. This is a pretty general question, so feel free to answer just for the implementation you know about.

I know about the following Scala Actor implementations (SAI). Please add the missing ones.

  • Scala 2.7 (difference to)
  • Scala 2.8
  • Akka (http://www.akkasource.org/)
  • Lift (http://liftweb.net/)
  • Scalaz (http://code.google.com/p/scalaz/)


  • What are the target use-cases for these SAIs (lightweight vs. "heavy" enterprise framework)?

  • do they support remote actors? What shortcomings do remote actors have in the SAIs?
  • How is their performace?
  • How active is there community?
  • How easy are they to get started? How good is the documentation?
  • How easy are they to extend?
  • How stable are they? Which projects are using them?
  • What are their shortcomings?
  • What are their design principles?
    • Are they thread based or event based (receive/ react) or both?
    • Nested receiveS
    • hotswapping the Actor’s message loop
like image 275
Stefan K. Avatar asked May 25 '10 15:05

Stefan K.


People also ask

What are Scala actors?

The Actor Model provides a higher level of abstraction for writing concurrent and distributed systems. It alleviates the developer from having to deal with explicit locking and thread management, making it easier to write correct concurrent and parallel systems.

What is actor Akka?

What is an Actor in Akka? An actor is essentially nothing more than an object that receives messages and takes actions to handle them. It is decoupled from the source of the message and its only responsibility is to properly recognize the type of message it has received and take action accordingly.

Is Akka a good framework?

As a conclusion: The actor model itself is what you should adopt first and Akka is a very reliable framework helping you to implement it with a lot of benefits you will receive along the way.

What is Akka good for?

Akka gives developers a unified way to build scalable and fault-tolerant software that can scale up on multicore systems, and scale out in distributed computing environments, which today often means in the cloud.


2 Answers

This is the most comprehensive comparison I have seen so far:

http://doc.akka.io/docs/misc/Comparison_between_4_actor_frameworks.pdf via http://klangism.tumblr.com/post/2497057136/all-actors-in-scala-compared

like image 134
mkhq Avatar answered Oct 14 '22 16:10

mkhq


As of Scala 2.10, scala actors is now deprecated and Akka Actors is now part of standard distribution

like image 27
RAbraham Avatar answered Oct 14 '22 15:10

RAbraham