Building Massively Scalable Applications With Akka

  • Published on

  • View

  • Download

Embed Size (px)


Session presented at the 6th Conference on Java held in Pune, India on 2-3 Dec. 2011. --- Historically writing correct concurrent, scalable and fault-tolerant applications has been very hard. Akka is an attempt to simplify writing concurrent, scalable and highly available software for the JVM. Akka has an API both for Scala and Java. Akka uses the Actor Model together with Software Transactional Memory (STM) to raise the abstraction level. For fault-tolerance it adopts the Let it crash model which help in building self healing always on systems. The presentation walks through the Akka features for building a web scale system. We would look at a real world case study in which Inphina developed a web scale framework using Akka which is capable of processing 150 million streaming messages a day. We would discuss the architecture and key design decisions.


<ul><li>1.Building Massively ScalableApplications with AkkaVikas HazratiInphina Technologies1</li></ul> <p>2. what? Platform for next generation, event driven,scalable and fault tolerant architectures on the JVM.2 3. akkaA actor-based concurrency frameworkProvides solutions for non blocking concurrencyWritten in Scala, also works in Java Open source Now at 1.3-RC2 (to be released this weekend)Lead developer and founder: Jonas BonerJRockit, AspectWerkz, AspectJ, Terracotta3 4. issuesconcurrencyscalabilityfault tolerance4 5. why akkasimpler concurrencyevent drivenscale up or scale out fault toleranceremoting scala and java api 5 6. aha actors!message-Passing Concurrencyshare NOTHINGisolated lightweight processescommunicates through messagesasynchronous and non-blocking 6 7. actorsdefined in the 1973 paper by Carl Hewittpopularized by Erlangalleviates the devfrom explicit lockingand thread managementeasy to write concurrent and parallel systemsactors like objects BUT dont share state7 8. actor modelsThread-basedEvent-based Very lightweight can easily create millions on a single workstation (6.5 million on 4 G RAM)8 9. 9 10. defining an actor 10 11. firing messagesbang bang bang11 12. send anything 12 13. fault tolerancelet it crashlinked set of actors13 14. all for one 14 15. one for one 15 16. supervisor hierarchies16 17. fault management17 18. other concepts Akka STMRemote Actors Akka Serialization Persistence18 19. problem statement 19 20. considerations20 21. hmm... STM XSerialization XPersistence XRemoting ?/X21 22. 22 23. 23 24. 24 25. issuesmaxing out on the os threads 25 26. dispatchersthread based dedicated os threadboundevent based backed by pool of threadspriority event basedwork stealing 26 27. 27 28. ala carte28 29. used in ... 29 30. more information 30 31. Everyone ! 31 </p>


View more >