Typesafe Reactive Platform

Akka

Akka actors allow you to implement reliable and maintainable failure handling in a distributed application—across multiple cores and cluster nodes.

Event-driven Middleware for Java and Scala

Akka is an asynchronous event-driven middleware implemented in Scala for building high performance and reliable distributed applications. Akka decouples business logic from low-level mechanisms such as threads, locks and non-blocking I/O. Java and Scala program logic lives in lightweight Actor objects, which send and receive messages in a reactive fashion. With Akka, you can easily configure how Actors will be created, destroyed, scheduled, and how to deal with failures.

Fault-tolerance

Akka provides fault-tolerance based on supervisor hierarchies. Every actor can create other actors, which it will then supervise, making decisions if they should be resumed, restarted, retired or if the problem should be escalated. Instead of trying all things possible to prevent an error from happening, this approach lets you embrace the reality of unplanned errors. It means you can adopt a pragmatic ‘Let It Crash’ philosophy, with the confidence that the impacted components will be reset to a stable state and restarted upon failure.

Write your application in the Akka style and you can scale it up and out by configuration, with zero code changes.

Simpler Concurrency

Threads and non-blocking I/O are complex and error-prone to build by hand, which means they waste your time. With Akka's implementation of the Actor Concurrency Model, you are freed to focus on your application's business logic and let Akka think about scaling up and out.

Scalability

Scale out on multicore servers and multiple nodes using Akka's support for asynchronous message passing.  On commodity hardware, you might run several million Actors - a huge step up from mere thousands of threads in a traditional Java application.

Scala & Java APIs

In keeping with the pragmatism of the rest of the Typesafe Runtime, Akka has a Java API in addition to a Scala API. This means smooth interoperability, and no need to learn or adopt Scala at all. Akka can run standalone on a JVM or deployed in your existing Java Application Server.

Akka was originally created by Typesafe co-founder Jonas Bonér.

Akka Team Blog

Follow Akka updates on the Let it Crash blog.