106
Above the Clouds: Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter: @jboner Thursday, May 12, 2011

Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Above the Clouds:Introducing Akka

Jonas BonérCEO @ Scalable Solutions

Twitter : @jboner

Thursday, May 12, 2011

Page 2: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

The problem

It is way too hard to build:1. correct highly concurrent systems

2. truly scalable systems

3. fault-tolerant systems that self-heals

...using “state-of-the-art” tools

Thursday, May 12, 2011

Page 3: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

akkaIntroducing

Thursday, May 12, 2011

Page 4: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Vision

Simpler

Concurrency

Scalability

Fault-tolerance

Thursday, May 12, 2011

Page 5: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Vision

...with a single unified

Programming model

Runtime service

Thursday, May 12, 2011

Page 6: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Manage system overload

Thursday, May 12, 2011

Page 7: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Scale up & Scale out

Thursday, May 12, 2011

Page 8: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Replicate and distribute for fault-tolerance

Thursday, May 12, 2011

Page 9: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Transparent load balancingThursday, May 12, 2011

Page 10: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

CORE SERVICES

ARCHITECTURE

Thursday, May 12, 2011

Page 11: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

ADD-ON MODULES

ARCHITECTURE

Thursday, May 12, 2011

Page 12: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

ARCHITECTURE

CLOUDY AKKA

Thursday, May 12, 2011

Page 13: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

FINANCE

• Stock trend Analysis & Simulation

• Event-driven messaging systems

BETTING & GAMING

• Massive multiplayer online gaming

• High throughput and transactional betting

TELECOM

• Streaming media network gateways

SIMULATION

• 3D simulation engines

E-COMMERCE

• Social media community sites

SOME EXAMPLES:

WHERE IS AKKA USED?

Thursday, May 12, 2011

Page 14: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

What is an Actor?

Thursday, May 12, 2011

Page 15: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Behavior

State

Actor

Thursday, May 12, 2011

Page 16: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Event-drivenThread

Behavior

State

Actor

Thursday, May 12, 2011

Page 17: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Event-drivenThread

Behavior

State

Actor

Thursday, May 12, 2011

Page 18: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Event-drivenThread

Behavior

State

Actor

Thursday, May 12, 2011

Page 19: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Event-drivenThread

Behavior

State

Actor

Thursday, May 12, 2011

Page 20: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Event-drivenThread

Behavior

State

Actor

Thursday, May 12, 2011

Page 21: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Behavior

State

Actor

Thursday, May 12, 2011

Page 22: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Event-drivenThread

Behavior

State

Actor

Thursday, May 12, 2011

Page 23: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Akka Actorsone tool in the toolbox

Thursday, May 12, 2011

Page 24: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

!"#$%&'($!)!"#$%

!*"##!&'()*+,!$+)$,-#!-$*',!.!!."/!$'()*+,!/!0

!!-$0!,+$+#1+!/!.!!!!!"#$!"#$%!/2!!!!!!!$'()*+,!3/!4!!!!!!5,#)*6)7$'()*+,8!!99

Actors

Thursday, May 12, 2011

Page 25: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

."*!$'()*+,!/!:$*',;<=&'()*+,>

Create Actors

$'()*+, is an -$*',?+<

Thursday, May 12, 2011

Page 26: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

."*!$'()*+,!/!:$*',;<=&'()*+,>@A*:,*

Start actors

Thursday, May 12, 2011

Page 27: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

."*!$'()*+,!/!:$*',;<=&'()*+,>@A*:,*$'()*+,@A*'5

Stop actors

Thursday, May 12, 2011

Page 28: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

$'()*+,!B!"#$%!

Send: !

fire-forget

Thursday, May 12, 2011

Page 29: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

CC!,+*(,)A!:!<(*(,+."*!<(*(,+!/!:$*',!BBB!D+AA:E+<(*(,+@:F:#*."*!,+A(6*!/!<(*(,+@,+A(6*

Send: !!!

returns the Future directly

Thursday, May 12, 2011

Page 30: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Future."*!<(*(,+4G!<(*(,+HG!<(*(,+I!/!!!J(*(,+@+K5*L=M*,#)E>

<(*(,+4@:F:#*<(*(,+H@')&'K56+*+7<!/2!@@@8

<(*(,+4@$'K56+*+N#*O?+A(6*7@@@8!<(*(,+H@$'K56+*+N#*OPQ$+5*#')7@@@8<(*(,+I@$'K56+*+N#*O7<(*(,+H8

<(*(,+4!,+$+#1+!.!!!"#$!J''7R:,8!/2!S<''T9@:F:#*@,+A(6*

Thursday, May 12, 2011

Page 31: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

."*%<4!/!J(*(,+A@<(*(,+7$:66:R6+8

."*!<H!/!J(*(,+A@<#,A*&'K56+*+U;<7<(*(,+A8

."*!<I!/!J(*(,+A@,+U($+7<(*(,+A877QG!L8!/2!@@8

."*%<V!/!J(*(,+A@<'6U7W+,'87<(*(,+A877QG!L8!/2!@@@8

Future

Thursday, May 12, 2011

Page 32: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Future."*!<(*(,+4!/!0&/!.!!:X!Y)*!!!!Z[!:$*',!BBB!\]+66'\!CC!,+*(,)A!^!!RX!M*,#)E!Z[!:$*',!BBB!:!!!!!!!CC!,+*(,)A!\40\!!$X!M*,#)E!Z[!:$*',!BBB!_!!!!!!!CC!,+*(,)A!\4V\9!12$*-!R!3!\[\!3!$

."*!<(*(,+H!/!0&/!.!!:!Z[!:$*',!BBB!?+`7\]+66'\8!$'66+$*!.!$:A+!?+A7QX!Y)*8!!!!/2!Q!9!!R!Z[!:$*',!BBB!?+`7:8!!!!!!!$'66+$*!.!$:A+!?+A7QX!M*,#)E8!/2!Q!9!!$!Z[!:$*',!BBB!?+`7_8!!!!!!!$'66+$*!.!$:A+!?+A7QX!M*,#)E8!/2!Q!99!12$*-!R!3!\[\!3!$

Thursday, May 12, 2011

Page 33: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Dataflow234&/)!J(*(,+@<6'F

."*!QG!LG!W!/!a,'K#A+=Y)*>78

<6'F!.!!W!ZZ!Q78!3!L78!!5,#)*6)7\W!/!\!3!W7889<6'F!.!Q!ZZ!V0!9<6'F!.!L!ZZ!H!9

Thursday, May 12, 2011

Page 34: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

."*!,+A(6*!/!7:$*',!BB!D+AA:E+8@:A=M*,#)E>

Send: !!

uses Future under the hood and blocks until timeout or completion

Thursday, May 12, 2011

Page 35: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

!*"##!M'K+-$*',!$+)$,-#!-$*',!.!!-$0!,+$+#1+!/!.!!!!!"#$!bA+,7):K+8!/2!!!!!!!CC!(A+!,+56L!!!!!!A+6<@,+56L7S]#!T!3!):K+8!!99

Reply

Thursday, May 12, 2011

Page 36: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

HotSwap

A+6<!R+$'K+!.!!CC!)+F!R'UL!!!"#$!c+FD+AA:E+!/2!!!!!@@@!!9

Thursday, May 12, 2011

Page 37: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

HotSwap

:$*',!B!]'*MF:5!.!!CC!)+F!R'UL!!!"#$!c+FD+AA:E+!/2!!!!!@@@!!9

Thursday, May 12, 2011

Page 38: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

HotSwap

A+6<@()R+$'K+7)

Thursday, May 12, 2011

Page 39: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

!*"##!DL-$*',!$+)$,-#!-$*',!.!!A+6<@U#A5:*$O+,!/!d#A5:*$O+,A!!!!@)+F"O,+:Ue:A+Ud#A5:*$O+,7A+6<8!!!!@@@9

:$*',@U#A5:*$O+,!/!U#A5:*$O+,!CC!R+<',+!A*:,*+U

Set dispatcher

Thursday, May 12, 2011

Page 40: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Remote Actors

Thursday, May 12, 2011

Page 41: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

CC!(A+!O'A*!f!5',*!#)!$')<#E-$*',@,+K'*+@A*:,*78

-$*',@,+K'*+@A*:,*7\6'$:6O'A*\G!H^^H8

Remote Server

Scalable implementation based on NIO (Netty) & Protobuf

Thursday, May 12, 2011

Page 42: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Two types of

remote actorsClient initiated & managedServer initiated & managed

Thursday, May 12, 2011

Page 43: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

234&/)%-$*',@g

."*!A+,1#$+!/!,+K'*+@:$*',;<=DL-$*',>7O'A*G!5',*8

A+,1#$+!B!K+AA:E+

Client-managedsupervision works across nodes

Thursday, May 12, 2011

Page 44: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

234&/)%-$*',@g

,+K'*+@,+E#A*+,7SA+,1#$+X#UTG!:$*',;<=DLM+,1#$+>8

Server-managedregister and manage actor on server

client gets “dumb” proxy handle

server partThursday, May 12, 2011

Page 45: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

."*!A+,1#$+!/!,+K'*+@:$*',J',7!!SA+,1#$+X#UTG!!!SU:,%A*:,TG!!!hhhh8

A+,1#$+!B!K+AA:E+

Server-managed

client part

Thursday, May 12, 2011

Page 46: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

234&/)%-$*',@g

,+K'*+@,+E#A*+,7:$*',;<=DLM+,1#$+>8,+K'*+@,+E#A*+,eLb(#U7:$*',;<=DLM+,1#$+>8,+K'*+@,+E#A*+,a+,M+AA#')7!!SA+,1#$+X#UTG!:$*',;<=DLM+,1#$+>8

,+K'*+@(),+E#A*+,7SA+,1#$+X#UT8!,+K'*+@(),+E#A*+,7:$*',?+<8

Server-managed

server partThursday, May 12, 2011

Page 47: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Remote ActorsClient-managedServer-managed

Problem Deployment (local vs remote) is a dev decision

We get a fixed and hard-coded topology Can’t change it dynamically and adaptively

Needs to be a deployment & runtime decision

Remoting in Akka 1.0

Thursday, May 12, 2011

Page 48: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Clustered Actors(in development for upcoming Akka 2.0)

Thursday, May 12, 2011

Page 49: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

1:6!:$*',!/!:$*',;<=DL-$*',>7S315#$/.2!$T8

Address

Bind the actor to a virtual address

Thursday, May 12, 2011

Page 50: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

•Actor address is virtual and decoupled from how it is deployed

•If no deployment configuration exists then actor is deployed as local

•The same system can be configured as distributed without code change (even change at runtime)

•Write as local but deploy as distributed in the cloud without code change

•Allows runtime to dynamically and adaptively change topology

Deployment

Thursday, May 12, 2011

Page 51: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

:%%:!.!!:$*',!.!!!!U+56'LK+)*!.!!!!!!315#$/.2!$!.!!!!!!!!!!!!!!!!!!!!!!!!!,'(*+,!/!\6+:A*[$5(\!!!!!!!!$6(A*+,+U!.!!!!!!!!!!O'K+!!!!!!/!\)'U+X*+A*[)'U+[4\!!!!!!!!!!,+56#$:A!!/!I!!!!!!!!!!A*:*+6+AA!/!')!!!!!!!!9!!!!!!9!!!!9!!99

Deployment configuration

Thursday, May 12, 2011

Page 52: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

:%%:!.!!:$*',!.!!!!U+56'LK+)*!.!!!!!!315#$/.2!$!.!!!!!!!!!!!!!!!!!!!!!!!!!,'(*+,!/!\6+:A*[$5(\!!!!!!!!$6(A*+,+U!.!!!!!!!!!!O'K+!!!!!!/!\)'U+X*+A*[)'U+[4\!!!!!!!!!!,+56#$:A!!/!I!!!!!!!!!!A*:*+6+AA!/!')!!!!!!!!9!!!!!!9!!!!9!!99

Deployment configuration Address

Thursday, May 12, 2011

Page 53: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

:%%:!.!!:$*',!.!!!!U+56'LK+)*!.!!!!!!315#$/.2!$!.!!!!!!!!!!!!!!!!!!!!!!!!!,'(*+,!/!\6+:A*[$5(\!!!!!!!!$6(A*+,+U!.!!!!!!!!!!O'K+!!!!!!/!\)'U+X*+A*[)'U+[4\!!!!!!!!!!,+56#$:A!!/!I!!!!!!!!!!A*:*+6+AA!/!')!!!!!!!!9!!!!!!9!!!!9!!99

Deployment configuration Address Type of

load-balancing

Thursday, May 12, 2011

Page 54: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

:%%:!.!!:$*',!.!!!!U+56'LK+)*!.!!!!!!315#$/.2!$!.!!!!!!!!!!!!!!!!!!!!!!!!!,'(*+,!/!\6+:A*[$5(\!!!!!!!!$6(A*+,+U!.!!!!!!!!!!O'K+!!!!!!/!\)'U+X*+A*[)'U+[4\!!!!!!!!!!,+56#$:A!!/!I!!!!!!!!!!A*:*+6+AA!/!')!!!!!!!!9!!!!!!9!!!!9!!99

Deployment configuration Address Type of

load-balancing

Clusteredor Local

Thursday, May 12, 2011

Page 55: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

:%%:!.!!:$*',!.!!!!U+56'LK+)*!.!!!!!!315#$/.2!$!.!!!!!!!!!!!!!!!!!!!!!!!!!,'(*+,!/!\6+:A*[$5(\!!!!!!!!$6(A*+,+U!.!!!!!!!!!!O'K+!!!!!!/!\)'U+X*+A*[)'U+[4\!!!!!!!!!!,+56#$:A!!/!I!!!!!!!!!!A*:*+6+AA!/!')!!!!!!!!9!!!!!!9!!!!9!!99

Deployment configuration Address Type of

load-balancing

Clusteredor Local Home node

Thursday, May 12, 2011

Page 56: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

:%%:!.!!:$*',!.!!!!U+56'LK+)*!.!!!!!!315#$/.2!$!.!!!!!!!!!!!!!!!!!!!!!!!!!,'(*+,!/!\6+:A*[$5(\!!!!!!!!$6(A*+,+U!.!!!!!!!!!!O'K+!!!!!!/!\)'U+X*+A*[)'U+[4\!!!!!!!!!!,+56#$:A!!/!I!!!!!!!!!!A*:*+6+AA!/!')!!!!!!!!9!!!!!!9!!!!9!!99

Deployment configuration Address Type of

load-balancing

Clusteredor Local Home node

Nr of replicas in cluster

Thursday, May 12, 2011

Page 57: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

:%%:!.!!:$*',!.!!!!U+56'LK+)*!.!!!!!!315#$/.2!$!.!!!!!!!!!!!!!!!!!!!!!!!!!,'(*+,!/!\6+:A*[$5(\!!!!!!!!$6(A*+,+U!.!!!!!!!!!!O'K+!!!!!!/!\)'U+X*+A*[)'U+[4\!!!!!!!!!!,+56#$:A!!/!I!!!!!!!!!!A*:*+6+AA!/!')!!!!!!!!9!!!!!!9!!!!9!!99

Deployment configuration Address Type of

load-balancing

Clusteredor Local Home node

Nr of replicas in cluster

Stateful or Stateless

Thursday, May 12, 2011

Page 58: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

•Subscription-based cluster membership service•Highly available cluster registry for actors•Automatic cluster-wide deployment•Highly available centralized configuration service•Automatic replication with automatic fail-over upon

node crash•Transparent and user-configurable load-balancing•Transparent adaptive cluster rebalancing•Leader election•Durable mailboxes - guaranteed delivery

The runtime provides

Thursday, May 12, 2011

Page 59: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

•Publish/Subscribe (broker and broker-less)•Compute Grid (MapReduce)•Data Grid (querying etc)•Distributed STM (Transactional Memory)•Event Sourcing

Upcoming features

Thursday, May 12, 2011

Page 60: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Akka Node

Thursday, May 12, 2011

Page 61: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Akka Node

."*!5#)E!/!:$*',;<=a#)E>7S5#)ET8

."*!5')E!/!:$*',;<=a')E>7S5')ET8

5#)E!B!e:6675')E8

Thursday, May 12, 2011

Page 62: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Akka Node

."*!5#)E!/!:$*',;<=a#)E>7S5#)ET8

."*!5')E!/!:$*',;<=a')E>7S5')ET8

5#)E!B!e:6675')E8

Ping Pong

Thursday, May 12, 2011

Page 63: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Akka Node

AkkaCluster Node

Ping Pong

Thursday, May 12, 2011

Page 64: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Akka Node

AkkaCluster Node

AkkaCluster Node

AkkaCluster Node

AkkaCluster Node

AkkaCluster Node

Ping Pong

Thursday, May 12, 2011

Page 65: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

AkkaCluster Node

AkkaCluster Node

AkkaCluster Node

AkkaCluster Node

AkkaCluster Node

Ping Pong

Thursday, May 12, 2011

Page 66: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

:%%:!.!!:$*',!.!!!!U+56'LK+)*!.!!!!!!5#)E!.9!!!!!!5')E!.!!!!!!!!!!!!!!!!!!!!!!!!!,'(*+,!/!\,'()U[,'R#)\!!!!!!!!$6(A*+,+U!.!!!!!!!!!!,+56#$:A!!/!I!!!!!!!!!!A*:*+6+AA!/!')!!!!!!!!9!!!!!!9!!!!9!!99

AkkaCluster Node

AkkaCluster Node

AkkaCluster Node

AkkaCluster Node

AkkaCluster Node

Ping Pong

Thursday, May 12, 2011

Page 67: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

:%%:!.!!:$*',!.!!!!U+56'LK+)*!.!!!!!!5#)E!.9!!!!!!5')E!.!!!!!!!!!!!!!!!!!!!!!!!!!,'(*+,!/!\,'()U[,'R#)\!!!!!!!!$6(A*+,+U!.!!!!!!!!!!,+56#$:A!!/!I!!!!!!!!!!A*:*+6+AA!/!')!!!!!!!!9!!!!!!9!!!!9!!99

AkkaCluster Node

AkkaCluster Node

AkkaCluster Node

AkkaCluster Node

AkkaCluster NodePing

Pong

Thursday, May 12, 2011

Page 68: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

:%%:!.!!:$*',!.!!!!U+56'LK+)*!.!!!!!!5#)E!.9!!!!!!5')E!.!!!!!!!!!!!!!!!!!!!!!!!!!,'(*+,!/!\,'()U[,'R#)\!!!!!!!!$6(A*+,+U!.!!!!!!!!!!,+56#$:A!!/!I!!!!!!!!!!A*:*+6+AA!/!')!!!!!!!!9!!!!!!9!!!!9!!99

AkkaCluster Node

AkkaCluster Node

AkkaCluster Node

AkkaCluster Node

AkkaCluster NodePing

Pong

Pong

Pong

Thursday, May 12, 2011

Page 69: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

:%%:!.!!:$*',!.!!!!U+56'LK+)*!.!!!!!!5#)E!.9!!!!!!5')E!.!!!!!!!!!!!!!!!!!!!!!!!!!,'(*+,!/!\,'()U[,'R#)\!!!!!!!!$6(A*+,+U!.!!!!!!!!!!,+56#$:A!!/!I!!!!!!!!!!A*:*+6+AA!/!')!!!!!!!!9!!!!!!9!!!!9!!99

ZooKeeperZooKeeperZooKeeperEnsemble

AkkaCluster Node

AkkaCluster Node

AkkaCluster Node

AkkaCluster Node

AkkaCluster NodePing

Pong

Pong

Pong

Thursday, May 12, 2011

Page 70: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Let it crash fault-tolerance

Thursday, May 12, 2011

Page 71: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

The

Erlangmodel

Thursday, May 12, 2011

Page 72: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

9 nines

Thursday, May 12, 2011

Page 73: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

...let’s take a standard OO application

Thursday, May 12, 2011

Page 74: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Thursday, May 12, 2011

Page 75: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Which components have critically important state

and explicit error handling?

Thursday, May 12, 2011

Page 76: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Thursday, May 12, 2011

Page 77: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Classification of State• Scratch data• Static data• Supplied at boot time• Supplied by other components

• Dynamic data• Data possible to recompute• Input from other sources; data

that is impossible to recompute

Thursday, May 12, 2011

Page 78: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Classification of State• Scratch data• Static data• Supplied at boot time• Supplied by other components

• Dynamic data• Data possible to recompute• Input from other sources; data

that is impossible to recompute

Thursday, May 12, 2011

Page 79: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Classification of State• Scratch data• Static data• Supplied at boot time• Supplied by other components

• Dynamic data• Data possible to recompute• Input from other sources; data

that is impossible to recompute

Must be protected

by any means

Thursday, May 12, 2011

Page 80: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Fault-tolerant onion-layered Error Kernel

Thursday, May 12, 2011

Page 81: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

ErrorKernel

Thursday, May 12, 2011

Page 82: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

ErrorKernel

Thursday, May 12, 2011

Page 83: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

ErrorKernel

Thursday, May 12, 2011

Page 84: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

ErrorKernel

Thursday, May 12, 2011

Page 85: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

ErrorKernel

Thursday, May 12, 2011

Page 86: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

ErrorKernel

Thursday, May 12, 2011

Page 87: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

ErrorKernel

Thursday, May 12, 2011

Page 88: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

ErrorKernel

Thursday, May 12, 2011

Page 89: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

ErrorKernel

Thursday, May 12, 2011

Page 90: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

ErrorKernel

Thursday, May 12, 2011

Page 91: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

ErrorKernel

Thursday, May 12, 2011

Page 92: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

ErrorKernel

Thursday, May 12, 2011

Page 93: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

ErrorKernel

Thursday, May 12, 2011

Page 94: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

ErrorKernel

Thursday, May 12, 2011

Page 95: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

ErrorKernel

Thursday, May 12, 2011

Page 96: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Thursday, May 12, 2011

Page 97: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Thursday, May 12, 2011

Page 98: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Node 1 Node 2

Thursday, May 12, 2011

Page 99: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

6#)%7:$*',8()6#)%7:$*',8

A*:,*i#)%7:$*',8A5:F)i#)%=DL-$*',>

Linking

Thursday, May 12, 2011

Page 100: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

-66J',;)+M*,:*+EL7!!+,,',AG!!K:Qc,;<?+*,#+AG!!!F#*O#)"#K+?:)E+8

;)+J',;)+M*,:*+EL7!!+,,',AG!!K:Qc,;<?+*,#+AG!!!F#*O#)"#K+?:)E+8

Fault handlers

Thursday, May 12, 2011

Page 101: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

!*"##!M(5+,1#A',!$+)$,-#!-$*',!.!!<:(6*]:)U6+,!/!-66J',;)+M*,:*+EL7!!!!i#A*7$6:AA;<=Y66+E:6M*:*+PQ$+5*#')>8!!!!!^G!^00088

!!-$0!,+$+#1+!/!.!!!!!"#$!?+E#A*+,7:$*',8!/2!6#)%7:$*',8!!99

Supervision

Thursday, May 12, 2011

Page 102: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

!*"##!J:(6*"'6+,:)*M+,1#$+!$+)$,-#!-$*',!.!!@@@!!&.$//2-$%-$0!5,+?+A*:,*7,+:A')X!"O,'F:R6+8!/!.!!!!@@@!CC!$6+:)!(5!'$0&/$!,+A*:,*!!9!!&.$//2-$%-$0!5'A*?+A*:,*7,+:A')X!"O,'F:R6+8!/!.!!!!@@@!CC!#)#*!"0)$/!,+A*:,*!!99

Manage failure

Thursday, May 12, 2011

Page 103: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

AMQPDataflow

Security

...and much much more

HTTP

Guice

scalaz

JTA

FSMSTM

Spring

Camel

OSGi

Microkernel

Thursday, May 12, 2011

Page 104: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Akka 1.1To be released today

Thursday, May 12, 2011

Page 105: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

Get it and learn morehttp://akka.io

Thursday, May 12, 2011

Page 106: Above the Clouds: Introducing Akka - GOTO Conferencegotocon.com/.../slides/Jonas_AboveTheCloudsIntroducingAkka.pdf · Introducing Akka Jonas Bonér CEO @ Scalable Solutions Twitter:

EOFThursday, May 12, 2011