You are on page 1of 31

Building Massively Scalable Applications with Akka

Vikas Hazrati
Inphina Technologies

what?

Platform for next generation, event driven, scalable and fault tolerant architectures on the JVM.

akka
A actor-based concurrency framework Provides solutions for non blocking concurrency Written in Scala, also works in Java Open source Now at 1.3-RC2 (to be released this weekend) Lead developer and founder: Jonas Boner JRockit, AspectWerkz, AspectJ, Terracotta

issues

concurrency scalability fault tolerance

why akka
simpler concurrency event driven scale up or scale out fault tolerance remoting scala and java api
5

aha actors!
message-Passing Concurrency share NOTHING isolated lightweight processes communicates through messages asynchronous and non-blocking
6

actors
defined in the 1973 paper by Carl Hewitt popularized by Erlang
alleviates the dev from explicit locking and thread management easy to write concurrent and parallel systems actors like objects BUT dont share state
7

actor models
Thread-based Event-based
Very lightweight can easily create millions on a single workstation (6.5

million on 4 G RAM)
8

defining an actor

10

firing messages
bang bang bang

11

send anything

12

fault tolerance
let it crash linked set of actors

13

all for one

14

one for one

15

supervisor hierarchies

16

fault management

17

other concepts
Akka STM Remote Actors

Akka Serialization Persistence

18

problem statement

19

considerations

20

hmm...
STM X Serialization X Persistence X Remoting ?/X

21

22

23

24

issues

maxing out on the os threads

25

dispatchers
thread based dedicated os thread bound event based backed by pool of threads priority event based work stealing
26

27

ala carte'

28

used in ...

29

more information

http://akka.io/docs/akka/1.3-RC1/intro http://thoughts.inphina.com/tag/akka/

30

Everyone ! Thanks

vhazrati@inphina.com @vhazrati

31

You might also like