Building Massively Scalable Applications With Akka
Upcoming SlideShare
Loading in...5

Building Massively Scalable Applications With Akka



Session presented at the 6th Conference on Java held in Pune, India on 2-3 Dec. 2011. ...

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.



Total Views
Views on SlideShare
Embed Views



1 Embed 1,211 1211


Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NoDerivs LicenseCC Attribution-NoDerivs License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Building Massively Scalable Applications With Akka Building Massively Scalable Applications With Akka Presentation Transcript

  • Building Massively ScalableApplications with Akka Vikas Hazrati Inphina Technologies 1
  • what? Platform for next generation, event driven,scalable and fault tolerant architectures on the JVM. 2
  • 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, Terracotta 3
  • issuesconcurrency scalabilityfault tolerance 4
  • why akkasimpler concurrency event drivenscale up or scale out fault tolerance remoting scala and java api 5
  • aha actors!message-Passing Concurrency share NOTHINGisolated lightweight processes communicates through messagesasynchronous and non-blocking 6
  • 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 state 7
  • actor modelsThread-basedEvent-based • Very lightweight • can easily create millions on a single workstation (6.5 million on 4 G RAM) 8
  • 9
  • defining an actor 10
  • firing messagesbang bang bang 11
  • send anything 12
  • fault tolerancelet it crashlinked set of actors 13
  • all for one 14
  • one for one 15
  • supervisor hierarchies 16
  • fault management 17
  • other concepts Akka STMRemote Actors Akka Serialization Persistence 18
  • problem statement 19
  • considerations 20
  • hmm... STM – XSerialization – XPersistence – XRemoting – ?/X 21
  • 22
  • 23
  • 24
  • issuesmaxing out on the os threads 25
  • dispatchersthread based – dedicated os thread boundevent based – backed by pool of threadspriority event basedwork stealing 26
  • 27
  • ala carte 28
  • used in ... 29
  • more information 30
  • Everyone ! “Thanks” 31