Akka (toolkit)

Akka
Original author(s)Jonas Bonér
Developer(s)Lightbend
Initial releaseJuly 2009 (2009-07)
Stable release
2.9.1 / December 19, 2023; 12 months ago (2023-12-19)[1]
Repository
Written inScala
Operating systemCross-platform
PlatformJava Virtual Machine
Licensemultiple
Websiteakka.io

Akka is a source-available 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.[2]

Language bindings exist for both Java and Scala. Akka is written in Scala and, as of Scala 2.10, the actors in the Scala standard library are deprecated in favor of Akka.[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, the Swedish programmer 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 Lightbend Platform together with the Play framework and the Scala programming language.

In September 2022, Lightbend announced that Akka would change its license from the free software license Apache License 2.0 to a proprietary source-available license, known as the Business Source License (BSL). Any new code under the BSL would become available under the Apache License after three years.[9]

Distinguishing features

The key points distinguishing applications based on Akka actors are:

  • Concurrency is message-based and asynchronous: typically no mutable data are shared and no synchronization primitives are used; Akka implements the actor model.
  • The way actors interact is the same whether they are on the same host or separate hosts, communicating directly or through routing facilities, running on a few threads or many threads, etc. Such details may be altered at deployment time through a configuration mechanism, allowing a program to be scaled up (to make use of more powerful servers) and out (to make use of more servers) without modification.
  • Actors are arranged hierarchically with regard to program failures, which are treated as events to be handled by an actor's supervisor (regardless of which actor sent the message triggering the failure). In contrast to Erlang, Akka enforces parental supervision, which means that each actor is created and supervised by its parent actor.

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 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,[10] supported by an active community.[11] The current emphasis is on extending cluster support.

Relation to other libraries

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

There are more than 250 public projects registered on GitHub which use Akka.[23]

Publications about Akka

There are several books about Akka:

  • Akka Essentials[24]
  • Akka Code Examples
  • Akka Concurrency[25]
  • Akka in Action, Second Edition[26]
  • Akka in Action[27]
  • Effective Akka[28]
  • Composable Futures with Akka 2.0, Featuring Java, Scala and Akka Code Examples[29]

Akka also features in:

  • P. Haller's "Actors in Scala"[30]
  • N. Raychaudhuri's "Scala in Action"[31]
  • D. Wampler's "Functional Programming for Java Developers"[32]
  • A. Alexander's "Scala Cookbook"[33]
  • V. Subramaniam's "Programming Concurrency on the JVM"[34]
  • M. Bernhardt's "Reactive Web Applications"[35]

Besides many web articles that describe the commercial use of Akka,[36][37] there are also overview articles about it.[38][39]

References

  1. ^ Akka Team. "Akka 23.10 Released". Retrieved 27 December 2023.
  2. ^ Akka Team. "Scala Actors Introduction". Retrieved 17 September 2018.
  3. ^ Jovanovic, Vojin. "The Scala Actors Migration Guide". Archived from the original on 5 December 2013. Retrieved 13 March 2013.
  4. ^ "Scala Version History - Older versions". scala-lang.org. 2009-02-16. Archived from the original on 2013-01-04.
  5. ^ Jonas Bonér (2009-02-16). "init project setup". github.com.
  6. ^ Bonér, Jonas. "Akka Actor Kernel". scala-language@googlegroups.com. Archived from the original on 2016-03-04. Retrieved 2017-07-13.
  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. ^ Bonér, Jonas. "Why We Are Changing the License for Akka". Retrieved 7 September 2022.
  10. ^ "Akka team". akka.io. Retrieved 6 June 2013.
  11. ^ "Akka contributors list". github.com. Retrieved 6 June 2013.
  12. ^ Doenitz, Mathias. "Spray toolkit". spray.io. Retrieved 6 June 2013.
  13. ^ "Play framework documentation: Integrating with Akka". playframework.com. Retrieved 6 June 2013.
  14. ^ "Spark project sources". github.com. Retrieved 6 June 2013.
  15. ^ "Socko Web Server". sockoweb.org. Retrieved 6 June 2013.
  16. ^ "eventsourced library". eligosource. Retrieved 6 June 2013.
  17. ^ "Gatling stress test tool". github.com. Retrieved 6 June 2013.
  18. ^ "Akka - Scalatra". scalatra.org. Retrieved 2022-10-06.
  19. ^ "Vaadin in Akka". Vaadin.com. Retrieved 26 April 2014.
  20. ^ "Apache Flink - Akka for the win !". flink.apache.org. Retrieved 2 December 2015.
  21. ^ "Apache Flink: Scala Free in One Fifteen". flink.apache.org. 22 February 2022. Retrieved 2022-04-22.
  22. ^ "Lagom - Integrating with Akka".
  23. ^ Tasharofi, Samira. "Akka actor project corpus at GitHub". cs.illinois.edu. Archived from the original on 2012-10-30. Retrieved 2013-06-06.
  24. ^ Gupta, Munish K. (2012). Akka Essentials. Packt Publishing. p. 334. ISBN 978-1849518284.
  25. ^ Wyatt, Derek (2013). Akka Concurrency. Artima. p. 521. ISBN 978-0981531663.
  26. ^ Lopez-Sancho Abraham, Francisco (2023). Akka in Action, Second Edition. Manning Publications. p. 400. ISBN 978-1617299216.
  27. ^ Roestenburg, Raymond (2013). Akka in Action. Manning Publications. p. 475. ISBN 978-1617291012.
  28. ^ Allen, Jamie (2013). Effective Akka. O'Reilly Media. p. 74. ISBN 978-1449360078.
  29. ^ Slinn, Michael (2012). Composable Futures with Akka 2.0. Micronautics Research. p. 178. ISBN 978-0984278923.
  30. ^ Haller, Philipp (2012). Actors in Scala. Artima. p. 169. ISBN 978-0981531656.
  31. ^ Raychaudhuri, Nilanjan (2013). Scala in Action. Manning Publications. p. 416. ISBN 978-1935182757.
  32. ^ Wampler, Dean (2011). Functional Programming for Java Developers. O'Reilly Media. pp. 90. ISBN 978-1449311032.
  33. ^ Alexander, Alvin (2013). Scala Cookbook. O'Reilly Media. p. 722. ISBN 978-1449339616.
  34. ^ Subramaniam, Venkat (2011). Programming Concurrency on the JVM: Mastering Synchronization, STM, and Actors. Pragmatic Bookshelf. pp. 280. ISBN 978-1934356760.
  35. ^ Bernhardt, Manuel (2016). Reactive Web Applications: Covers Play, Akka and Reactive Streams. Manning Publications. p. 328. ISBN 9781633430099.
  36. ^ Darrow, Barb (25 June 2012). "Juniper networks signs on with Scala". gigaom.com. Archived from the original on 2 June 2013. Retrieved 8 June 2013.
  37. ^ Ross, David. "Scaling the Klout API with Scala, Akka and Play". Retrieved 8 June 2013.
  38. ^ Haines, Stephen (May 8, 2013). "Open source Java projects: Akka". JavaWorld. Retrieved 2020-07-15.
  39. ^ "Java Magazin 6.13". jaxenter.de. Archived from the original on 13 August 2013. Retrieved 8 June 2013.

Read other articles:

У этого термина существуют и другие значения, см. Ботанический сад (значения). Ботанический сад Лейпцигского университетанем. Botanischer Garten der Universität Leipzig Основная информация Типучебное ботаническое собрание  Площадь3,5 га Дата основанияоколо 1540 года  Число посет

 

English magazine editor (1958–2007) This British surname is barrelled, being made up of multiple names. It should be written as Delves Broughton at birth. Isabella BlowBlow in 2005BornIsabella Delves Broughton(1958-11-19)19 November 1958London, EnglandDied7 May 2007(2007-05-07) (aged 48)Gloucester, Gloucestershire, EnglandResting placeGloucester CathedralYears active1993–2007Spouses Nicholas Taylor ​ ​(m. 1981; div. 1983)​ Detmar B...

 

1997 San Marino Grand Prix Race 4 of 17 in the 1997 Formula One World Championship Race detailsDate 27 April 1997Official name XVII Gran Premio di San MarinoLocation Autodromo Enzo e Dino Ferrari, Imola, Emilia-Romagna, ItalyCourse Permanent Racing FacilityCourse length 4.930 km (3.065 miles)Distance 62 laps, 305.660 km (190.030 miles)Weather Cloudy, Dry, 17 °CPole positionDriver Jacques Villeneuve Williams-RenaultTime 1:23.303Fastest lapDriver Heinz-Harald Frentzen Williams-RenaultTime 1:25...

Kastelbell-Tschars (ital.: Castelbello-Ciardes) Wappen Wappen von Kastelbell-Tschars Staat: Italien Region: Trentino-Südtirol Provinz: Bozen – Südtirol Bezirksgemeinschaft: Vinschgau Einwohner:(VZ 2011/31.12.2022) 2.378/2.309 Sprachgruppen:(laut Volkszählung 2011) 98,72 % deutsch1,28 % italienisch0,00 % ladinisch Koordinaten 46° 38′ N, 10° 54′ O46.63333333333310.9587Koordinaten: 46° 38′ N, 10° 54′ O Meereshöhe: 556–291...

 

新磐田スマートインターチェンジ 新磐田スマートインターチェンジETCゲート(2022年4月)所属路線 E1A 新東名高速道路IC番号 13-2料金所番号 04-821本線標識の表記 新磐田起点からの距離 178.1 km(海老名南JCT起点) ◄遠州森町PA/SIC (4.4 km) (4.3 km) 浜松浜北IC►接続する一般道 市道下野部敷地線供用開始日 2021年(令和3年)7月17日スマートIC 24時間所在地 〒438-0106静岡県磐田市敷

 

DamFortun Hydroelectric Power StationSkagen kraftverkCountryNorwayCoordinates61°30′18″N 7°42′09″E / 61.50500°N 7.70250°E / 61.50500; 7.70250StatusOperationalUpper reservoirTotal capacity292×10^6 m3 (0.292 km3)[1]Lower reservoirCreatesFortundalen[1]Power StationHydraulic head960 m[1]Installed capacity254 MWCapacity factor61.8%Annual generation1,375 GW·h The Fortun Power Station is a hydroelectric p...

Селище Нью-Баваріяангл. New Bavaria Координати 41°12′14″ пн. ш. 84°10′05″ зх. д. / 41.2039000000277724° пн. ш. 84.168100000027777696° зх. д. / 41.2039000000277724; -84.168100000027777696Координати: 41°12′14″ пн. ш. 84°10′05″ зх. д. / 41.2039000000277724° пн. ш. 84.168100000027777696° зх. ...

 

Montañas Luofu Ubicación geográficaCoordenadas 23°18′N 114°00′E / 23.3, 114Ubicación administrativaPaís  ChinaDivisión HuizhouCaracterísticasMáxima cota (1,3 km)Superficie 260 km²Mapa de localización Montañas Luofu Ubicación (Guangdong).[editar datos en Wikidata] Las montañas Luofu (en chino, 山 罗浮; pinyin, luófú shān, también llamadas Dongqiao, que significa leña) son una de las cuatro montañas sagradas de China en la...

 

منهجية برينس2 لادارة المشروعات إن منهجية ادارة المشاريع برينس 2 (بالإنجليزية PRINCE2) (وهي اختصار  Projects In Controlled Environments  المشاريع في البيئات الخاضعة للتحكم، الإصدار 2) تشمل إدارة الجودة، ومراقبة وتنظيم المشروع مع الاتساق والمراجعة لتتماشى مع اهداف المشروع، وكذلك هي برنامج ل

Convention center in Dallas, Texas, US 32°46′28″N 96°48′05″W / 32.7745799°N 96.801484°W / 32.7745799; -96.801484 Kay Bailey Hutchison Convention CenterAerial view of the complex (c.2015)Address650 S Griffin StDallas, TX 75202-5005LocationConvention Center DistrictOwnerCity of DallasOperatorSpectraBuilt1969-73ArchitectOmniplanOpenedJanuary 1973Expanded1984199420022011Former namesDallas Convention Center (1973-2013)Meeting-room seating28-680Banquet/ballroom1,...

 

1973 studio album by Leon ThomasFull CircleStudio album by Leon ThomasReleased1973Recorded1973StudioRCA Studio A, New YorkGenreJazzLength48:24LabelFlying DutchmanFD 10167ProducerBob ThieleLeon Thomas chronology Blues and the Soulful Truth(1973) Full Circle(1973) Precious Energy(1990) Full Circle is an album by American jazz vocalist and percussionist Leon Thomas recorded in 1973 and released by the Flying Dutchman label.[1][2][3] Reception Professional ratingsR...

 

Nesta lista estão incluídos todos os Juízes do Tribunal Constitucional de Portugal desde a sua fundação em 1982.[1][2][3] Juízes em funções José João AbrantesPresidente14 de Julho de 202068 anos Gonçalo Almeida RibeiroVice-Presidente22 de Julho de 201639 anos José Teles PereiraJuiz9 de Julho de 201566 anos Joana CostaJuíza22 de Julho de 201652 anos Mariana CanotilhoJuíza2 de Abril de 201944 anos Afonso PatrãoJuiz12 de Outubro de 202143 anos José Ascensão RamosJuiz12 de Outubr...

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: History of slavery in Missouri – news · newspapers · books · scholar · JSTOR (March 2023) (Learn how and when to remove this template message) Part of a series on the History of Missouri Timeline Pre-colonial Colonial period Territorial period 1821–present By...

 

Class of minerals that include the sulfate ion The sulfate minerals are a class of minerals that include the sulfate ion (SO2−4) within their structure. The sulfate minerals occur commonly in primary evaporite depositional environments, as gangue minerals in hydrothermal veins and as secondary minerals in the oxidizing zone of sulfide mineral deposits. The chromate and manganate minerals have a similar structure and are often included with the sulfates in mineral classification systems.[...

 

1995  TV series or program SaharaOfficial release posterGenreAction, WarScreenplay byDavid PhillipsStory byPhilip MacDonaldDirected byBrian Trenchard-SmithStarringJim BelushiMusic byGarry McDonald and Lawrence StoneCountry of originUnited States/AustraliaOriginal languagesEnglish, GermanProductionProducerDarryl SheenCinematographyJohn StokesEditorsAlan LakePatrick StewartRunning time106 minutesProduction companiesVillage Roadshow PicturesTriStar PicturesTriStar TelevisionOriginal re...

Equatorial east-to-west prevailing winds Tradewind redirects here. For other uses, see Tradewind (disambiguation). The westerlies (blue arrows) and trade winds (yellow and brown arrows) The trade winds or easterlies are the permanent east-to-west prevailing winds that flow in the Earth's equatorial region. The trade winds blow mainly from the northeast in the Northern Hemisphere and from the southeast in the Southern Hemisphere, strengthening during the winter and when the Arctic oscillation ...

 

American Coast Guard admiral Edward Hanson SmithEdward H. Smith in 1942Nickname(s)Iceberg SmithBorn(1889-10-29)29 October 1889Vineyard Haven, Massachusetts[1][2]Died29 October 1961(1961-10-29) (aged 72)[3]Quissett, Massachusetts, U.S.[1]BuriedMartha's Vineyard, Massachusetts, U.S.[1]Allegiance United States of AmericaService/branch United States NavyYears of service1910–1950RankRear admiralAwardsNavy Distinguished Service Medal[...

 

2011 Japanese filmYakuza WeaponFilm poster for Yakuza WeaponJapanese nameKanji極道兵器TranscriptionsRevised HepburnGokudō Heiki Directed byTak SakaguchiYūdai YamaguchiWritten byYūdai YamaguchiTak SakaguchiBased onGokudō Heikiby Ken IshikawaProduced byYoshinori ChibaShuichi TakashinoToshiki KimuraStarringTak SakaguchiJun MurakamiMei KurokawaShingo TsurumiCinematographyMasakazu OkaEdited byZensuke HoriMusic byNobuhiko MorinoProductioncompanyStairwayDistributed byNikkatsuRelease dates Fe...

Brahmins native to Manipur This article is about the Meitei speaking Brahmins. For the overall Meitei speaking community, see Meitei people. Manipuri Brahmin Meitei BrahminMeitei Bamon (literally meaning Meitei Brahmin in Meitei language) written in Meitei scriptLanguagesSanskrit (sacred), Meitei (officially called Manipuri)ReligionHinduism (Manipuri Vaishnavism)Related ethnic groupsOther Brahmin groups: Bengali BrahminUtkala Brahmin[1]Maithil BrahminNagar Brahmin[2] Part of a...

 

Pakistani politician Sheikh Manzoor Elahi was a Pakistani politician who served as the Caretaker Chief Minister of Punjab, Pakistan from July 19th, 1993 to October 20th 1993.[1][2] References ^ Sh Manzoor passes away. DAWN.COM. December 12, 2008. ^ Sheikh Manzoor Elahi | Office of the Chief Minister of Punjab, Government of the Punjab. cm.punjab.gov.pk. Retrieved 2023-01-24. vteChief Ministers of Punjab, Pakistan Mamdot Daultana Noon Dasti Khalid Khar Ramay Qureshi N. Sharif W...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!