a tour of (advanced) akka features in 40 minutes
TRANSCRIPT
![Page 1: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/1.jpg)
A Tour of (Advanced) Akka Features in 40 Minutes
Johan Janssen, Info Support@johanjanssen42
![Page 2: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/2.jpg)
Content
▪ Why Akka?
▪ Local actor
▪ Remote actor
▪ Scheduling
▪ Cluster
▪ Routing
▪ Cluster singleton
▪ Sharding
▪ Persistence
▪ Akka HTTP
▪ Finite State Machines
▪ Conclusion
▪ Questions
![Page 3: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/3.jpg)
Why Akka?
![Page 4: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/4.jpg)
Why Akka?
▪ Concurrent
▪ Scalable
▪ Fault tolerant
▪ More natural programming experience when connecting to other systems
▪ Easy to use?
![Page 5: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/5.jpg)
![Page 6: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/6.jpg)
Local actor
![Page 7: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/7.jpg)
Local actor
Actor on JVM 1
![Page 8: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/8.jpg)
Local actor
Coordinator Actor
Hello conference
![Page 9: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/9.jpg)
Local actor
Coordinator Actor
println("Hello conference")
![Page 10: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/10.jpg)
class Worker extends Actor {def receive = {case x =>println(x)
}}
val system = ActorSystem("ExampleActorSystem")
val workerActorRef = system.actorOf(Props[Worker])workerActorRef ! "Hello conference"
Scala
![Page 11: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/11.jpg)
Remote actor
![Page 12: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/12.jpg)
Remote actor
Actor on JVM 1
Actor on JVM 2
![Page 13: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/13.jpg)
val workerActorRef = system.actorOf(Props[Worker])workerActorRef ! "Hello conference"
val workerActorRef = context.actorSelection("akka.tcp://[email protected]:9005/user/workerActor")
workerActorRef ! "Hello conference"
![Page 14: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/14.jpg)
akka {actor {provider =
"akka.remote.RemoteActorRefProvider"}remote {enabled-transports =
["akka.remote.netty.tcp"]netty.tcp {hostname = "127.0.0.1"port = 9002
![Page 15: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/15.jpg)
Remote actor
Coordinator actor
Worker actor
StartMessage
Hello conference
![Page 16: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/16.jpg)
Remote actor
Coordinator actor
Worker actor
WorkerMessage
Greetings from the coordinator:
Hello Conference
![Page 17: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/17.jpg)
Remote actor
Coordinator actor
Worker actor
WorkerResponseMessage
Item processed successfully
![Page 18: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/18.jpg)
Scheduling
![Page 19: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/19.jpg)
Scheduling
Actor
Scheduled once after 1 second
Tick
Scheduled every 5 seconds
Tock
system.scheduler.scheduleOnce(1 seconds, scheduleReceiveActor, Tick)
system.scheduler.schedule(0 seconds, 5 seconds, scheduleReceiveActor, Tock)
![Page 20: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/20.jpg)
Scheduling
▪ Does not work for fixed point in time like 17:00– Use Quartz
![Page 21: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/21.jpg)
Cluster
![Page 22: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/22.jpg)
Cluster
ActorSystemon JVM 1
ActorSystemon JVM 3
ActorSystemon JVM 2
ActorSystemon JVM 4
![Page 23: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/23.jpg)
Seed nodes
▪ Contact points for automatically joining a cluster
![Page 24: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/24.jpg)
akka {
cluster {
seed-nodes = [
"akka.tcp://[email protected]:2551",
"akka.tcp://[email protected]:2552"
]
}
}
![Page 26: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/26.jpg)
Cluster Worker Node
Port 2551
Worker Node
Port 2552
Member Up with IP: 127.0.0.1 and port: 2551Member Up with IP: 127.0.0.1 and port: 2552
Member Up with IP: 127.0.0.1 and port: 2551Member Up with IP: 127.0.0.1 and port: 2552
![Page 27: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/27.jpg)
Cluster Worker Node
Port 2551
Worker Node
Port 2552
Member Up with IP: 127.0.0.1 and port: 2550
Member Up with IP: 127.0.0.1 and port: 2550
CoordinatorNode
Port 2550
![Page 28: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/28.jpg)
Cluster Worker Node
Port 2551
Worker Node
Port 2552
CoordinatorNode
Port 2550
RegisterWorker
RegisterWorker
![Page 29: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/29.jpg)
Cluster Worker Node
Port 2551
Worker Node
Port 2552
CoordinatorNode
Port 2550
Worker registered with IP: 127.0.0.1 and port: 2551Worker registered with IP: 127.0.0.1 and port: 2552
![Page 30: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/30.jpg)
Routing
![Page 31: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/31.jpg)
Routing
Actor on JVM 1
Actor on JVM 3
Actor on JVM 4
Actor on JVM 2
Loadbalancer
![Page 32: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/32.jpg)
akka {actor {provider = "akka.cluster.ClusterActorRefProvider"
deployment {/coordinator/router {router = round-robin-poolnr-of-instances = 10routees.paths = ["/user/emptystringactor"]cluster {enabled = onallow-local-routees = off
}}
}}
}
![Page 33: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/33.jpg)
Routing
CoordinatorActor on
JVM 1
EmptyStringActor on
JVM 3
EmptyStringActor on
JVM 4
EmptyStringActor on
JVM 2""
![Page 34: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/34.jpg)
Routing
CoordinatorActor on
JVM 1
EmptyStringActor on
JVM 3
EmptyStringActor on
JVM 4
EmptyStringActor on
JVM 2""
HashMap[hostname, counter]
![Page 35: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/35.jpg)
Routing
CoordinatorActor on
JVM 1
EmptyStringActor on
JVM 3
EmptyStringActor on
JVM 4
EmptyStringActor on
JVM 2
""
![Page 36: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/36.jpg)
Routing
CoordinatorActor on
JVM 1
EmptyStringActor on
JVM 3
EmptyStringActor on
JVM 4
EmptyStringActor on
JVM 2
""
![Page 37: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/37.jpg)
Cluster singleton
![Page 38: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/38.jpg)
Cluster singleton
▪ Only one instance of the actor in the cluster
▪ (Re)created on the oldest node
▪ Can be used for instance for scheduling/caching
![Page 39: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/39.jpg)
Cluster singleton
Actor on JVM 1
Other actors on
JVM 3
Other actors on
JVM 4
Singleton actor and
other actors on JVM 2
![Page 40: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/40.jpg)
Cluster singleton
CoordinatorEmptyString
Actor on JVM 3
EmptyStringActor on
JVM 4
EmptyStringActor on
JVM 2""
![Page 41: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/41.jpg)
Cluster singleton
CoordinatorEmptyString
Actor on JVM 3
EmptyStringActor on
JVM 4
EmptyStringActor on
JVM 2""
HashMap[hostname, counter]
![Page 42: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/42.jpg)
Cluster singleton
CoordinatorEmptyString
Actor on JVM 3
EmptyStringActor on
JVM 4
EmptyStringActor on
JVM 2""
![Page 43: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/43.jpg)
Cluster singleton
CoordinatorEmptyString
Actor on JVM 3
EmptyStringActor on
JVM 4
EmptyStringActor on
JVM 2""
HashMap[hostname, counter]
![Page 44: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/44.jpg)
Cluster singleton
CoordinatorEmptyString
Actor on JVM 3
EmptyStringActor on
JVM 4
EmptyStringActor on
JVM 2Crash
![Page 45: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/45.jpg)
Cluster singleton
CoordinatorEmptyString
Actor on JVM 3
EmptyStringActor on
JVM 4
""
![Page 46: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/46.jpg)
Cluster singleton
CoordinatorEmptyString
Actor on JVM 3
EmptyStringActor on
JVM 4
""
HashMap[hostname, counter]
![Page 47: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/47.jpg)
Cluster singleton
CoordinatorEmptyString
Actor on JVM 3
EmptyStringActor on
JVM 4
""
![Page 48: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/48.jpg)
Cluster singleton
CoordinatorEmptyString
Actor on JVM 3
EmptyStringActor on
JVM 4
""
HashMap[hostname, counter]
![Page 49: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/49.jpg)
Sharding
![Page 50: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/50.jpg)
Sharding
▪ Dividing a set of actors over a cluster
▪ Actors will be divided into groups called shards
▪ It will divide based on a logical identifier
![Page 51: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/51.jpg)
Sharding
Actor on JVM 1
oddShard on
JVM 3
evenShard on
JVM 2
0, 2, 4, 6, 8
1, 3, 5, 7, 9
![Page 52: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/52.jpg)
Persistence
![Page 53: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/53.jpg)
Persistence
▪ Store actor information
▪ Recover after crash
▪ Possibility to take snapshots
![Page 54: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/54.jpg)
Example without persistence
Actor
Cobol
![Page 55: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/55.jpg)
Example without persistence
Actor
Cobol
![Page 56: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/56.jpg)
Example without persistence
Cobol
Actor
![Page 57: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/57.jpg)
Example without persistence
Actor
Java Cobol
![Page 58: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/58.jpg)
Example without persistence
CobolJava
ActorCrash
Restart
![Page 59: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/59.jpg)
Example without persistence
Actor
![Page 60: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/60.jpg)
Example without persistence
Actor
Scala
![Page 61: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/61.jpg)
Example without persistence
Scala
Actor
![Page 62: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/62.jpg)
Persistence
PersistentActor
Cobol
Command
Journal
![Page 63: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/63.jpg)
Persistence
Journal
CobolEvent
PersistentActor
![Page 64: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/64.jpg)
Persistence
Journal
ACKPersistentActor
CobolEvent
![Page 65: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/65.jpg)
Persistence
Cobol
Journal
CobolEvent
PersistentActor
![Page 66: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/66.jpg)
Persistence
Cobol
Journal
CobolEvent
PersistentActor
JavaEvent
![Page 67: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/67.jpg)
Persistence
CobolJava
Journal
CobolEvent
PersistentActorCrash
Restart JavaEvent
![Page 68: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/68.jpg)
Persistence
Journal
CobolEvent
PersistentActor
JavaEvent
![Page 69: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/69.jpg)
Persistence
CobolJava
Journal
CobolEvent
PersistentActor
JavaEvent
Scala
![Page 70: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/70.jpg)
Persistence
CobolJavaScala
Journal
CobolEvent
PersistentActor
JavaEvent
![Page 71: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/71.jpg)
Snapshots
JournalPersistentActor
Snapshot store
State until Event C++
C++
Cobol
![Page 72: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/72.jpg)
Snapshots
JournalPersistentActor
Snapshot store
State until Event C++
C++
Cobol
![Page 73: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/73.jpg)
Snapshots
JournalPersistentActor
Snapshot store
State until Event C++ C++
Cobol
![Page 74: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/74.jpg)
Snapshots
JournalPersistentActor
Snapshot store
State until Event C++
JavaC++
Cobol
![Page 75: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/75.jpg)
Snapshots
JournalPersistentActor
Snapshot store
State until Event C++
Crash
Restart
C++
Cobol
Java
![Page 76: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/76.jpg)
Snapshots
JournalPersistentActor
Snapshot store
State until Event C++ C++
Cobol
Java
![Page 77: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/77.jpg)
Snapshots
CobolC++
JournalPersistentActor
Snapshot store
State until Event C++ C++
Cobol
Java
![Page 78: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/78.jpg)
Snapshots
CobolC++Java
JournalPersistentActor
Snapshot store
State until Event C++ C++
Cobol
Java
![Page 79: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/79.jpg)
Snapshots
CobolC++JavaScala
JournalPersistentActor
Snapshot store
State until Event C++ C++
Cobol
Java
![Page 80: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/80.jpg)
Akka HTTP
![Page 81: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/81.jpg)
Akka HTTP
Actor on JVM 1
Actor on JVM 2
![Page 82: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/82.jpg)
Finite State Machine
![Page 83: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/83.jpg)
Finite State Machine
▪ State
▪ Event
![Page 84: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/84.jpg)
Finite State Machines (FSM)
InprogressProject
CrappyProject
NewProject
Progress, iterationProgress, iteration
Progress, iteration
NoProgressProgress, 2
![Page 85: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/85.jpg)
Finite State Machines (FSM)
InprogressProject
CrappyProject
NewProject
Work harder
Iteration: 0
![Page 86: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/86.jpg)
Finite State Machines (FSM)
InprogressProject
CrappyProject
NewProject
Good job!
Iteration: 0
![Page 87: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/87.jpg)
Finite State Machines (FSM)
InprogressProject
CrappyProject
NewProject
Wrong direction
Iteration: 0
![Page 88: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/88.jpg)
Finite State Machines (FSM)
InprogressProject
CrappyProject
NewProject
Use Akka
Iteration: 0
![Page 89: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/89.jpg)
Finite State Machines (FSM)
InprogressProject
CrappyProject
NewProject
Good job!
Iteration: 1
![Page 90: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/90.jpg)
Finite State Machines (FSM)
InprogressProject
CrappyProject
NewProject
Wrong direction
Iteration: 1
![Page 91: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/91.jpg)
Finite State Machines (FSM)
InprogressProject
CrappyProject
NewProject
Use Akka
Iteration: 1
![Page 92: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/92.jpg)
Finite State Machines (FSM)
InprogressProject
CrappyProject
NewProject Get another job!
Iteration: 2
![Page 93: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/93.jpg)
Conclusion
![Page 94: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/94.jpg)
Conclusion
▪ Akka can be used with Scala or Java
▪ There is even a .NET version of Akka
▪ Akka is really powerful
▪ Akka is quite easy to use
▪ Some features are still experimental
![Page 95: A tour of (advanced) Akka features in 40 minutes](https://reader030.vdocuments.net/reader030/viewer/2022020314/58e4ac361a28abbb038b5947/html5/thumbnails/95.jpg)
Questions
Johan Janssen @johanjanssen42GitHub: https://github.com/johanjanssen/Akka-examples