views:

258

answers:

2

I am struggling to find any decent links to design patterns, best practice or good, basic architectural principles that should be used in building Actor-based apps. Those few that I know of are:

Blog posts, articles, WIKIs, guides

Papers

Books

Implementations

  • Akka Framework (alternative implementation of actors in Scala with a port of several Erlang behaviors and lots of other relized patterns for actors)
  • Scalaz Actors (actor compositions, strategies and promises)

Examples from highscalability.com

  • Simple queuing service (SQS) - this service provides an internet scale queuing service for storing messages. Distributed actors put work on the queue and take work off the queue. Typical use: a centralized work queue. You put jobs on the queue and different actors can pop work of the queue and process them when they get CPU time. Part of scalability. Have any number of producers and consumers. You don't worry about it. Queues are spread across multiple machines and multiple data centers.
+2  A: 

see following Link it has some good patterns

http://programming-scala.labs.oreilly.com/ch13.html

sagar
Couldn't find any single design pattern *for Actors* by your link...
Vasil Remeniuk
+6  A: 

This is related to a previous question, if not exactly the same!

It's not such a simple question because the actor model of concurrency allows for many different types of applications to be built, from a stateful single-VM application (with a few separate actor classes) to a stateless cluster of thousands of instances of an actor class.

The core principles are the same however:

  • Never expose an actor's state
  • Communicate solely via the passing of immutable messages
oxbow_lakes