Original author(s) | Jonas Bonér |
---|---|
Developer(s) | Lightbend |
Initial release | July 2009 |
Stable release |
2.5.9 / January 11, 2018
|
Repository | |
Development status | Active |
Written in | Scala |
Operating system | Cross-platform |
Platform | Java Virtual Machine |
License | Apache License 2.0 |
Website | akka |
Akka is a free and open-source toolkit and runtime simplifying the construction of concurrent and distributed applications on the JVM. Akka supports multiple programming models for concurrency, but it emphasizes actor-based concurrency, with inspiration drawn from Erlang.
Language bindings exist for both Java and Scala. Akka is written in Scala and, as of Scala 2.10, Akka's actor implementation is included as part of the Scala standard library.
An actor implementation, written by Philipp Haller, was released in July 2006 as part of Scala 2.1.7. By 2008 Scala was attracting attention for use in complex server applications, but concurrency was still typically achieved by creating threads that shared memory and synchronized when necessary using locks. Aware of the difficulties with that approach and inspired by the Erlang programming language's library support for writing highly concurrent, event-driven applications, Jonas Bonér created Akka to bring similar capabilities to Scala and Java. Bonér began working on Akka in early 2009 and wrote up his vision for it in June of that year. The first public release was Akka 0.5, announced in January 2010. Akka is now part of the Lightbend Platform together with the Play framework and the Scala programming language.
The key points distinguishing applications based on Akka actors are:
Akka has a modular structure, with a core module providing actors. Other modules are available to add features such as network distribution of actors, cluster support, Command and Event Sourcing, integration with various third-party systems (e.g. Apache Camel, ZeroMQ), and even support for other concurrency models such as Futures and Agents.
Viktor Klang became the technical lead for the Akka project in September 2011. When Viktor became Director of Engineering at Lightbend in December 2012, Roland Kuhn became the technical lead for Akka. The main part of the development is done by a core team employed at Lightbend, supported by an active community. The current emphasis is on extending cluster support.