Akka (toolkit)

This article is about the software library for application development. For Other uses, see Akka.
Akka
Original author(s) Jonas Bonér
Developer(s) Lightbend
Initial release July 2009 (2009-07)
Stable release 2.4.2[1] / February 17, 2016 (2016-02-17)[2]
Development status Active
Written in Scala
Operating system Cross-platform
Platform Java Virtual Machine
License Apache License 2.0
Website akka.io

Akka is an 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.[3]

History

An actor implementation, written by Philipp Haller, was released in July 2006 as part of Scala 2.1.7.[4] 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[5] and wrote up his vision for it in June of that year.[6] The first public release was Akka 0.5,[7] announced in January 2010.[8] Akka is now part of the Typesafe Platform together with the Play framework and the Scala programming language.

Distinguishing Features

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.

Project Structure

Viktor Klang became the technical lead for the Akka project in September 2011. When Viktor became Director of Engineering at Typesafe 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 Typesafe,[9] supported by an active community.[10] The current emphasis is on extending cluster support.

Relation to other Libraries

Other frameworks and toolkits have emerged to form an ecosystem around Akka:

Akka actors are considered an integral part of the Scala standard library.[20] There are more than 250 public projects registered on GitHub which use Akka.[21]

Releases

Version Date Comment
0.5 Jul 13, 2009
0.6 Jan 5, 2010
0.7 Mar 22, 2010[22]
0.8 Apr 1, 2010
0.8.1 Apr 6, 2010
0.9 Jun 1, 2010[23]
0.9.1 Jun 7, 2010
0.10 Aug 21, 2010[24]
1.0 Feb 16, 2011[25]
1.1 May 12, 2011
1.1.1 May 24, 2011
1.1.2 May 25, 2011[26]
1.1.3 Jun 29, 2011
1.2 Sep 19, 2011
1.3 Jan 27, 2012
1.3.1 Feb 7, 2012
2.0 Mar 6, 2012[27][28]
2.0.1 Apr 13, 2012
2.0.2 Jun 4, 2012
2.0.3 Aug 15, 2012
2.0.4 Nov 14, 2012[29]
2.1.0 Dec 22, 2012[30] part of Scala 2.10.x distribution
2.0.5 Jan 2, 2013
2.1.1 Feb 26, 2013
2.1.2 Mar 15, 2013
2.1.4 May 13, 2013
2.2.0 July 9, 2013
2.2.1 Aug 27, 2013
2.2.3 Oct 23, 2013
2.2.4 Mar 4, 2014
2.3.0 Mar 5, 2014
2.3.2 Apr 9, 2014 part of Scala 2.11.0 distribution
2.3.3 May 22, 2014[31]
2.3.4 Jun 30, 2014[32]
2.3.5 Aug 14, 2014[33]
2.3.6 Sep 5, 2014[34]
2.3.7 Nov 12, 2014[35]
2.3.8 Dec 7, 2014[36]
2.3.9 Jan 19, 2015[37]
2.3.10 Apr 23, 2015[38]
2.3.11 May 12, 2015[39]

Publications about Akka

There are several books about Akka:

Akka also features in

Besides many web articles describe the commercial use of Akka[50][51] there are also overview articles about it.[52][53]

References

  1. "Download Akka". Retrieved 2016-02-17.
  2. Akka Team (2016-02-17). "Akka 2.4.2 Released!".
  3. Jovanovic, Vojin. "The Scala Actors Migration Guide". Retrieved 13 March 2013.
  4. "Scala Version History - Older versions". scala-lang.org. 2009-02-16.
  5. Jonas Bonér (2009-02-16). "init project setup". github.com.
  6. Bonér, Jonas. "Akka Actor Kernel". scala-language@googlegroups.com. Retrieved 3 March 2013.
  7. Jonas Bonér (2009-07-12). "v0.5". github.com.
  8. Jonas Bonér (2010-01-04). "Introducing Akka - Simpler Scalability, Fault-Tolerance, Concurrency & Remoting through Actors". jonasboner.com.
  9. "Akka team". akka.io. Retrieved 6 June 2013.
  10. "Akka contributors list". github.com. Retrieved 6 June 2013.
  11. Doenitz, Mathias. "Spray toolkit". spray.io. Retrieved 6 June 2013.
  12. "Play framework documentation: Integrating with Akka". playframework.com. Retrieved 6 June 2013.
  13. "Spark project sources". github.com. Retrieved 6 June 2013.
  14. "Socko Web Server". sockoweb.org. Retrieved 6 June 2013.
  15. "eventsourced library". eligosource. Retrieved 6 June 2013.
  16. "Gatling stress test tool". github.com. Retrieved 6 June 2013.
  17. "Scalatra documentation: Akka". scalatra.org. Retrieved 6 June 2013.
  18. "Vaadin in Akka". Vaadin.com. Retrieved 26 April 2014.
  19. "Apache Flink - Akka for the win !". flink.apache.org. Retrieved 2 December 2015.
  20. Fulton, Scott M. "The Middleware Connection: Scala, Akka, and Heroku". readwrite.com. Retrieved 6 June 2013.
  21. Tasharofi, Samira. "Akka actor project corpus at GitHub". cs.illinois.edu.
  22. Schlosser, Hartmut. "Akka 0.7: Aktorenframework mit neuen Features". jaxenter.de. Retrieved 2 June 2013.
  23. Fröhling, Claudia. "Aktorenframework Akka 0.9 ist da". jaxenter.de. Retrieved 2 June 2013.
  24. Schlosser, Hartmut. "Aktorenframework Akka 0.10 erschienen". jaxenter.de. Retrieved 2 June 2013.
  25. Schlosser, Hartmut. "Akka 1.0 ist da". jaxenter.de. Retrieved 2 June 2013.
  26. Lorenz, Mirijam. "Akka 1.1.2 Upgrade auf Scala 2.9.0.1". jaxenter.de. Retrieved 2 June 2013.
  27. Schlosser, Hartmut. "Scala-Stack 2.0 nimmt Form an: Akka 2.0 erschienen". jaxenter.de. Retrieved 2 June 2013.
  28. Bagwell, Phil. "Akka 2.0 Released". scala-lang.org. Retrieved 6 June 2013.
  29. Lungstraß, Judith. "Bug Fix Release: Akka 2.0.4 erschienen". jaxenter.de. Retrieved 2 June 2013.
  30. Schlosser, Hartmut. "Akka 2.1.0 steht bereit". jaxenter.de. Retrieved 2 June 2013.
  31. Akka Team (2014-05-22). "Akka 2.3.3 Released".
  32. Akka Team (2014-06-30). "Akka 2.3.4 Released".
  33. Akka Team (2014-08-14). "Akka 2.3.5 Released".
  34. Akka Team (2014-09-05). "Akka 2.3.6 Released!".
  35. Akka Team (2014-11-12). "Akka 2.3.7 Released!".
  36. Akka Team (2015-04-11). "Akka 2.3.8 Released!".
  37. Akka Team (2015-04-11). "Akka 2.3.9 Released!".
  38. Akka Team (2015-04-24). "Akka 2.3.10 Released!".
  39. Akka Team (2015-06-21). "Akka 2.3.11 Released!".
  40. Gupta, Munish K. (2012). Akka Essentials. Packt Publishing. p. 334. ISBN 1849518289.
  41. Wyatt, Derek (2013). Akka Concurrency. Artima. p. 521. ISBN 0981531660.
  42. Roestenburg, Raymond (2013). Akka in Action. Manning Publications. p. 475. ISBN 1617291013.
  43. Allen, Jamie (2013). Effective Akka. O'Reilly Media. p. 74. ISBN 1449360076.
  44. Slinn, Michael (2012). Composable Futures with Akka 2.0. Micronautics Research. p. 178. ISBN 0984278923.
  45. Haller, Philipp (2012). Actors in Scala. Artima. p. 169. ISBN 0981531652.
  46. Raychaudhuri, Nilanjan (2013). Scala in Action. Manning Publications. p. 416. ISBN 1935182757.
  47. Wampler, Dean (2011). Functional Programming for Java Developers. O'Reilly Media. p. 90. ISBN 1449311032.
  48. Alexander, Alvin (2013). Scala Cookbook. O'Reilly Media. p. 722. ISBN 1449339611.
  49. Subramaniam, Venkat (2011). Programming Concurrency on the JVM: Mastering Synchronization, STM, and Actors. Pragmatic Bookshelf. p. 280. ISBN 193435676X.
  50. Darrow, Barb. "Juniper networks signs on with Scala". gigaom.com. Retrieved 8 June 2013.
  51. Ross, David. "Scaling the Klout API with Scala, Akka and Play". Retrieved 8 June 2013.
  52. Haines, Stephen. "Open source Java projects: Akka". javaworld.com. Retrieved 8 June 2013.
  53. "Java Magazin 6.13". jaxenter.de. Retrieved 8 June 2013.

External links

This article is issued from Wikipedia - version of the Friday, April 22, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.