Is there a better way? THERE MUST BE! THERE. MUST. BE. A. BETTER. WAY!
@petabridge Petabridge.com
Warning! Mind Blowingly Different
Programming Style Ahead!
@petabridge Petabridge.com
Warning! Mind Blowingly Different Programming Style Ahead!
@petabridge Petabridge.com
The Actor Model
@petabridge Petabridge.com
What is the actor model?
@petabridge Petabridge.com
Everything is an actor.
@petabridge Petabridge.com
@petabridge Petabridge.com
@petabridge Petabridge.com
3 Core Abilities
1. Send messages 2. Create other actors 3. Change behavior
@petabridge Petabridge.com
Messages
@petabridge Petabridge.com
Actors work by passing each other messages
@petabridge Petabridge.com
Message passing in action
@petabridge Petabridge.com
BUZZWORD BINGO!
@petabridge Petabridge.com
Example Akka.NET Message
@petabridge Petabridge.com
Actors send messages to addresses
@petabridge Petabridge.com
Actor addresses have location transparency
@petabridge Petabridge.com
Which means…
@petabridge Petabridge.com
@petabridge Petabridge.com
@petabridge Petabridge.com
ReactiveManifesto.org
@petabridge Petabridge.com
What is Akka.NET?
@petabridge Petabridge.com
Battle-Tested (JVM)
@petabridge Petabridge.com
This is an actor
@petabridge Petabridge.com
These are messages
@petabridge Petabridge.com
Actors run on threads
@petabridge Petabridge.com
Actors are lazy
@petabridge Petabridge.com
Process messages one at a time
@petabridge Petabridge.com
The circle of life
@petabridge Petabridge.com
@petabridge Petabridge.com
Hierarchies
@petabridge Petabridge.com
Supervision
@petabridge Petabridge.com
Switchable Behavior
@petabridge Petabridge.com
And Can Form Highly Available Systems
@petabridge Petabridge.com
Actors Vs.
C# Classes
@petabridge Petabridge.com
What’s this give me?
@petabridge Petabridge.com
Where can I use this? • Analytics systems • Marketing automation • Multi-player games • Device / IoT tracking • Alerting & monitoring systems • Recommendation engines • Dynamic pricing • Reactive UI
@petabridge Petabridge.com
DEMO
@petabridge Petabridge.com
10min break
@petabridge Petabridge.com
EXERCISE: Port Tail from *nix to Windows.
@petabridge Petabridge.com
Materials haps://petabridge.com/cheatsheet
@petabridge Petabridge.com
Make ActorSystem + First Actors
@petabridge Petabridge.com
Define first messages
@petabridge Petabridge.com
Props & IActorRefs
@petabridge Petabridge.com
Hierarchies & Child Actors
@petabridge Petabridge.com
Hierarchies pt. deux
@petabridge Petabridge.com
Character Actor Pattern
@petabridge Petabridge.com
ActorSelecgon
@petabridge Petabridge.com
ActorSelection == selection by address
@petabridge Petabridge.com
Actor Lifecycle
@petabridge Petabridge.com
Actor lifecycle
@petabridge Petabridge.com
Actor lifecycle
@petabridge Petabridge.com
Next Steps
1) Use your cheatsheet! 2) Finish Bootcamp 3) Use Giaer chat 4) Get your prize!