-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
clean up and stabilization, getting ready for M1
- Loading branch information
jboner
committed
Jul 12, 2009
1 parent
6a65c67
commit 95d598f
Showing
119 changed files
with
1,627 additions
and
4,928 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
h1. Akka Actor Kernel: | ||
__RESTful Distributed Persistent Transactional Actors__ | ||
|
||
h1. Introduction | ||
|
||
The Akka kernel implements a unique hybrid of: | ||
* The Actor model (Actors and Active Objects) | ||
** Asynchronous, non-blocking highly concurrent components. | ||
** Supervision with "let-it-crash" semantics. Components are loosely coupled and restarted upon failure. | ||
* Software Transactional Memory (STM). | ||
* BASE persistence - Pluggable Eventually Consistent distributed scalable persistent storage. | ||
* Remoting - Distributed services. | ||
* REST - JAX-RS binding. | ||
|
||
h2. Here is a short overview | ||
|
||
h3. The Actor model and supervisor hierarchies | ||
|
||
"Actors":http://en.wikipedia.org/wiki/Actor_model with "Erlang OTP-style supervisors":http://www.erlang.org/doc/design_principles/sup_princ.html#5 and "embrace failure/let-it-crash" semantics to allow implementation of asynchronous, non-blocking and highly fault-tolerant systems. Sort of "SEDA":http://www.eecs.harvard.edu/~mdw/proj/seda/ in a box with highly configurable and monitorable (JMX and w3c) thread pools and message queues. | ||
|
||
h3. Software Transactional Memory (STM) | ||
|
||
"Software Transactional Memory (STM)":http://en.wikipedia.org/wiki/Software_transactional_memory for composable message flows. Distributed transactions will come very soon, backed up by "ZooKeeper":http://hadoop.apache.org/zookeeper/. The STM works with both persistent datastructures and in-memory datastructures (see below). | ||
|
||
h3. BASE: Eventually Consistent Distributed persistence | ||
|
||
Akka provides a "Eventually Consistent":http://www.allthingsdistributed.com/2008/12/eventually_consistent.html Transactional Persistent Map, Vector and Ref. Backed up by the "Cassandra":http://incubator.apache.org/cassandra/ highly scalable, eventually consistent, distributed, structured key-value store. Akka will add support for "Terracotta":http://terracotta.org, "Redis":http://code.google.com/p/redis/, "Memcached":http://www.danga.com/memcached/, "Voldemort":http://project-voldemort.com/, "Tokyo Cabinet/Tyrant":http://tokyocabinet.sourceforge.net/ and "Hazelcast":http://www.hazelcast.com/ shortly. | ||
|
||
New nodes can be added and removed on the fly to support true scaling of cluster. The addition of Terracotta and Hazelcast will allow for atomic (ACID) transactions (non-BASE). | ||
|
||
h3. REST | ||
|
||
Actors can be exposed as "REST":http://en.wikipedia.org/wiki/Representational_State_Transfer services through "JAX-RS":https://jersey.dev.java.net/. | ||
|
||
h3. Remoting | ||
|
||
Actors can be defined and started on remote nodes, supporting both remote failures and supervision/linking. Enabling another dimension of fault-tolerance. | ||
|
||
h3. Java and Scala API | ||
|
||
Both a Java API through Active Objects and annotations as well as a Scala API with Erlang-style Actors with pattern matching etc. | ||
|
||
h3. Microkernel | ||
|
||
Akka has a microkernel that embeds the Actor management, Persistence service, REST integration, JMX management and Remote service. Simply drop your application in the /deploy directory and start up the kernel and you should be able to access your Actors through REST. | ||
|
||
h2. Documentation | ||
|
||
Akka has pretty thorough "reference documentation": https://github.com/jboner/akka/wikis. Covering examples, APIs and configuration. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.