Note that there are some explanatory texts on larger screens.

plurals
  1. PODesign patterns/best practice for building Actor-based system
    text
    copied!<p>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:</p> <h3>Blog posts, articles, WIKIs, guides</h3> <ul> <li><a href="http://www.erlang.org/doc/design_principles/users_guide.html" rel="noreferrer">OTP Design Principles User's Guide</a> </li> <li><a href="http://www.eaipatterns.com/" rel="noreferrer">Patterns and Best Practices for Enterprise Integration</a> (in general, can be applied to any message-driven architecture)</li> <li>Series of <a href="http://james-iry.blogspot.com/search/label/parallel%2Fdistributed%2Fconcurrent" rel="noreferrer">posts by James Iry on dealing with state in design with actors</a> </li> <li>Series of <a href="http://www.tikalk.com/category/tags/scala-actors" rel="noreferrer">posts on design with Scala actors</a> by Ittay Dror</li> <li><a href="http://en.wikipedia.org/wiki/Concurrency_pattern" rel="noreferrer">Concurrency patterns</a> article on wikipedia</li> <li><a href="http://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html" rel="noreferrer">Scalable System Design Patterns</a> (not directly related to actors, but quite useful)</li> <li>Understanding actor concurrency, <a href="http://www.javaworld.com/javaworld/jw-02-2009/jw-02-actor-concurrency1.html" rel="noreferrer">pt.1</a>, <a href="http://www.javaworld.com/javaworld/jw-03-2009/jw-03-actor-concurrency2.html" rel="noreferrer">pt.2</a> by Alex Miller</li> </ul> <h3>Papers</h3> <ul> <li><a href="http://erlang.org/download/armstrong_thesis_2003.pdf" rel="noreferrer">Disseration on making reliable distributed systems</a> by Joe Armstrong</li> <li><a href="http://lampwww.epfl.ch/~odersky/papers/ScalableComponent.html" rel="noreferrer">Scalabale Component Abstractions</a> by Philipp Haller and Martin Odersky</li> <li><a href="http://lampwww.epfl.ch/~odersky/papers/jmlc06.html" rel="noreferrer">Event-based programming without inversion of control</a> by Martin Odersky and Matthias Zenger</li> <li><a href="http://ww2.cs.mu.oz.au/~sulzmann/talks/coordination08-talk.pdf" rel="noreferrer">Actors with Multi-Headed Message Receive Patterns</a> by Martin Sulzmann</li> </ul> <h3>Books</h3> <ul> <li><a href="http://www.artima.com/shop/actors_in_scala" rel="noreferrer">Actors In Scala</a> by Philipp Haller and Frank Sommers</li> <li><a href="http://pragprog.com/titles/jaerlang/programming-erlang" rel="noreferrer">Programming Erlang</a> by Joe Armstrong</li> <li><a href="http://www.manning.com/logan/" rel="noreferrer">Erlang and OTP in Action</a> by Martin Logan, Eric Merritt, and Richard Carlsson</li> </ul> <h3>Implementations</h3> <ul> <li><a href="http://doc.akkasource.org/" rel="noreferrer">Akka Framework</a> (alternative implementation of actors in Scala with a port of several Erlang behaviors and lots of other relized patterns for actors)</li> <li><a href="http://docs.google.com/present/view?id=ddmk3f43_63zpg3jcgz" rel="noreferrer">Scalaz Actors</a> (actor compositions, strategies and promises)</li> </ul> <h3>Presentations</h3> <ul> <li><a href="http://www.infoq.com/presentations/Actor-Thinking" rel="noreferrer">Actor Thinking</a> by Dale Schumacher </li> <li><a href="http://www.infoq.com/presentations/1000-Year-old-Design-Patterns" rel="noreferrer">1000 Year-old Design Patterns</a> by Ulf Wiger</li> <li><a href="http://www.infoq.com/presentations/Actor-based-Programming" rel="noreferrer">Actor-based Programming</a> by Jamie Ridgway</li> <li><a href="http://www.slideshare.net/remeniuk/ss-8206699" rel="noreferrer">Школа Актерского Мастерства</a> by Vasil Remeniuk</li> </ul> <h3>Examples from highscalability.com</h3> <ul> <li><strong><a href="http://highscalability.com/build-infinitely-scalable-infrastructure-100-using-amazon-services" rel="noreferrer">Simple queuing service (SQS)</a></strong> - 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.</li> </ul>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload