Akka

Simpler Scalability, Fault-Tolerance, Concurrency & Remoting through Actors

Akka - Scala Summit OSCON 2010 View more presentations from jboner.

News

Akka 0.9.1 is here. Download it from http://github.com/jboner/akka/downloads

Akka implements a unique hybrid of:

Actors, which gives you: Simple and high-level abstractions for concurrency and parallelism. Asynchronous, non-blocking and highly performant event-driven programming model. Very lightweight event-driven processes (create ~6.5 million actors on 4 G RAM).

Failure management through supervisor hierarchies with let-it-crash semantics. Excellent for writing highly fault-tolerant systems that never stop, systems that self-heal.

Software Transactional Memory (STM). (Distributed transactions coming soon).

Transactors: combine actors and STM into transactional actors. Allows you to compose atomic message flows with automatic retry and rollback.

Remote actors: highly performant distributed actors with remote supervision and error management.

Cluster membership management.

Scala and Java API.

Akka also has a set of add-on modules:

Persistence: A set of pluggable back-end storage modules that works in sync with the STM. Cassandra distributed and highly scalable database. MongoDB document database. Redis data structures database.

Spring: Wire up typed actors in the Spring config using Akka's namespace.

REST (JAX-RS): Expose actors as REST services.

Camel: Expose actors as Apache Camel endpoints.

Comet: Expose actors as Comet services.

Security: Digest and Kerberos based security.

Microkernel: Run Akka as a stand-alone self-hosted kernel.

Akka can be used in two different ways:

As a library: used by a web app, to be put into ‘WEB-INF/lib’ or as a regular JAR on your classpath.

As a microkernel: stand-alone kernel, embedding a servlet container and all the other modules.

We believe that writing correct concurrent, fault-tolerant and scalable applications is too hard. Most of the time it's because we are using the wrong tools and the wrong level of abstraction. Akka is here to change that. Using the Actor Model together with Software Transactional Memory we raise the abstraction level and provide a better platform to build correct concurrent and scalable applications. For fault-tolerance we adopt the "Let it crash" / "Embrace failure" model which have been used with great success in the telecom industry to build applications that self-heals, systems that never stop. Actors also provides the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications. Akka is Open Source and available under the Apache 2 License.You can watch the Akka talk at Scala Days 2010.Or you can watch the slides from the Akka talk at the Scala Summit OSCON 2010:See the Use-case and Deployment Scenarios for details.