rewrote README
This commit is contained in:
parent
136cb4e334
commit
c2c2aabca7
1 changed files with 68 additions and 73 deletions
141
README.textile
141
README.textile
|
|
@ -1,73 +1,68 @@
|
|||
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.
|
||||
|
||||
h2. Distribution
|
||||
|
||||
The latest distribution can be found in the "downloads section":https://github.com/jboner/akka/downloads
|
||||
|
||||
h2. License
|
||||
|
||||
<pre>
|
||||
This software is licensed under the Apache 2 license, quoted below.
|
||||
|
||||
Copyright 2009 Scalable Solutions AB <http://scalablesolutions.se>
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
use this file except in compliance with the License. You may obtain a copy of
|
||||
the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
License for the specific language governing permissions and limitations under
|
||||
the License.
|
||||
</pre>
|
||||
h1. Akka: RESTful Distributed Persistent Transactional Actors
|
||||
|
||||
h3. "http://akkasource.org":http://akkasource.org
|
||||
|
||||
Akka implements a unique hybrid of:
|
||||
* The Actor model (Actors and Active Objects), which gives you:
|
||||
** Concurrency (high-level and simple)
|
||||
** Asynchronous, non-blocking and highly performant components.
|
||||
** Supervision with "let-it-crash" semantics. Components are loosely coupled and restarted upon failure.
|
||||
* Software Transactional Memory (STM).
|
||||
* BASE and ACID persistence - Pluggable Eventually Consistent or ACID distributed scalable persistent storage.
|
||||
* Remoting - Distributed services with supervision and error management
|
||||
* REST (JAX-RS) and Comet bindings.
|
||||
* Monitoring and Management
|
||||
|
||||
Akka can be used in two different ways:
|
||||
* As a library: used by a web app, to be put into ‘WEB-INF/lib’
|
||||
* As a kernel: stand-alone kernel, embedding the servlet container
|
||||
|
||||
See the "Use-case and Deployment Scenarios":http://wiki.github.com/jboner/akka/use-case-and-deployment-scenarios for details.
|
||||
|
||||
h1. What's Akka all about? Why should I care?
|
||||
|
||||
If you are new to Akka then I suggest you start with either the:
|
||||
|
||||
* "High Level View":http://wiki.github.com/jboner/akka/modules-the-high-level-view; which is outlining the different modules in Akka.
|
||||
* "Use-case and Deployment Scenarios":http://wiki.github.com/jboner/akka/use-case-and-deployment-scenarios; outlining how and in which use-case and deployment scenarios can I use Akka?
|
||||
* "Examples":http://wiki.github.com/jboner/akka/examples; showing how to build a RESTful, transactional, persistent Active Object and Actor.
|
||||
|
||||
After that you can dive into the "Reference Manual":http://wiki.github.com/jboner/akka/akka-reference-manual.
|
||||
|
||||
h1. Documentation
|
||||
|
||||
Akka has pretty thorough "reference documentation":https://github.com/jboner/akka/wikis. Covering examples, APIs and configuration.
|
||||
|
||||
h1. Distribution
|
||||
|
||||
The latest distribution can be found in the "downloads section":https://github.com/jboner/akka/downloads
|
||||
|
||||
h1. Mailing List
|
||||
|
||||
If you have questions and/or feedback: please sign up to the Akka User mailing list:
|
||||
"http://groups.google.com/group/akka-user":http://groups.google.com/group/akka-user
|
||||
|
||||
h1. Professional Support
|
||||
|
||||
Scalable Solutions AB is providing a variety of professional support packages for Akka, please visit their website for details:
|
||||
"http://scalablesolutions.se":http://scalablesolutions.se
|
||||
|
||||
h1. License
|
||||
|
||||
<pre>
|
||||
This software is licensed under the Apache 2 license, quoted below.
|
||||
|
||||
Copyright 2009 Scalable Solutions AB <http://scalablesolutions.se>
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
use this file except in compliance with the License. You may obtain a copy of
|
||||
the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
License for the specific language governing permissions and limitations under
|
||||
the License.
|
||||
</pre>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue