Reactive applications with Akka.Net - DDD East Anglia 2015
-
Upload
anthony-brown -
Category
Technology
-
view
1.699 -
download
3
Transcript of Reactive applications with Akka.Net - DDD East Anglia 2015
![Page 3: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/3.jpg)
Computers have changed… A lot
![Page 4: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/4.jpg)
![Page 5: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/5.jpg)
![Page 6: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/6.jpg)
![Page 7: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/7.jpg)
![Page 8: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/8.jpg)
Some of the changes
Faster processors More processor cores
More RAM Faster networks with more bandwidth
![Page 9: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/9.jpg)
We need to make sure applications are responsive to user actions
![Page 10: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/10.jpg)
Moore’s Law
![Page 11: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/11.jpg)
Scale up no longer possible
![Page 12: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/12.jpg)
What’s the options?
![Page 13: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/13.jpg)
CPUs have more cores Networks are faster
![Page 14: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/14.jpg)
Scale out is now possible
![Page 15: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/15.jpg)
Scale out relies on doing lots of work simultaneously
![Page 16: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/16.jpg)
To do work simultaneously, we need either parallelism or concurrency
![Page 17: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/17.jpg)
Parallelism is easy for Embarrassingly parallel tasks
![Page 18: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/18.jpg)
For more complex tasks, we need concurrency
![Page 19: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/19.jpg)
Is there a difference?
![Page 20: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/20.jpg)
Concurrency
Parallelism
Thread 1
Thread 2
Thread 1
Thread 2
![Page 21: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/21.jpg)
Concurrency is hard
![Page 22: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/22.jpg)
MULTITHREADING
THEORYPRACTICE
![Page 23: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/23.jpg)
CHECK OUTMY MULTITHREADED CODE
![Page 24: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/24.jpg)
HOW MANY THREADSDOES IT TAKE TO CHANGE A LIGHTBULB?
![Page 25: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/25.jpg)
We don’t want to write multithreaded code
![Page 26: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/26.jpg)
Use concurrency abstractions instead
![Page 27: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/27.jpg)
You’ve probably used one Tasks
![Page 28: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/28.jpg)
There’s another - actors
![Page 29: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/29.jpg)
![Page 30: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/30.jpg)
Why are tasks bad?
![Page 31: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/31.jpg)
They’re not, they solve a different problem
![Page 32: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/32.jpg)
Promote isolation over co-ordination
![Page 33: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/33.jpg)
Actors are independent entities
![Page 34: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/34.jpg)
Why does this matter?
![Page 35: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/35.jpg)
We said we need applications to be responsive
![Page 36: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/36.jpg)
What does it mean for an application to be responsive?
![Page 37: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/37.jpg)
For an application to be responsive, it needs to work no matter what
the scenario
![Page 38: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/38.jpg)
Heavy load
![Page 39: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/39.jpg)
Service failure
![Page 40: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/40.jpg)
If we want to manage these, we need loose coupling
![Page 41: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/41.jpg)
Common language for these applications
![Page 42: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/42.jpg)
Reactive reactivemanifesto.org
![Page 43: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/43.jpg)
RESPONSIVE
RESILIENT ELASTIC
MESSAGE PASSING
![Page 44: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/44.jpg)
Reactive applications React to their environment
![Page 45: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/45.jpg)
![Page 46: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/46.jpg)
using actors to write reactive applications
![Page 47: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/47.jpg)
an actor is
A mailbox behaviour state
![Page 48: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/48.jpg)
We saw that actors are strongly isolated, they encapsulate their
state
![Page 49: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/49.jpg)
To modify the state, we have a behaviour which is responsible for
it
![Page 50: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/50.jpg)
We invoke the behaviour by sending it a message
![Page 51: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/51.jpg)
Messages are processed serially but on separate threads
![Page 52: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/52.jpg)
An actor can
send a finite number of messages
![Page 53: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/53.jpg)
An actor can
spawn a finite number of actors
![Page 54: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/54.jpg)
An actor can
change how it responds to the next message
![Page 55: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/55.jpg)
How can we write actors?
![Page 56: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/56.jpg)
Using akka.Net
![Page 57: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/57.jpg)
![Page 58: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/58.jpg)
Step 1 Define an actor
![Page 59: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/59.jpg)
class GreetingActor : ReceiveActor { public GreetingActor() { Receive<string>( s => Console.WriteLine(“Hello ” + s)); } }
![Page 60: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/60.jpg)
Step 2 Create an actor system
![Page 61: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/61.jpg)
var system = ActorSystem.Create(“GreeterSystem”);
![Page 62: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/62.jpg)
Step 3 Spawn the actor
![Page 63: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/63.jpg)
var greeterActor = system.ActorOf<GreeterActor>();
![Page 64: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/64.jpg)
where is my actual actor?
AKKA.net
root actor
your
actors
![Page 65: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/65.jpg)
Step 4 Talk to the actor
![Page 66: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/66.jpg)
greeter.Tell(“DDDEA”);
![Page 67: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/67.jpg)
What about F#?
![Page 68: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/68.jpg)
Full F# API
![Page 69: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/69.jpg)
Built upon Erlang foundations
![Page 70: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/70.jpg)
let Actor count = actor { let! msg = mailbox.Receive () printfn “Message %i: %A” count msg return! actor (count+1) }
![Page 71: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/71.jpg)
Resilience in distributed
systems
![Page 72: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/72.jpg)
Cloud brings about failure
![Page 73: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/73.jpg)
your users don’t want to see THIS
![Page 74: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/74.jpg)
Need to isolate failures quickly and automatically recover from
them
![Page 75: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/75.jpg)
How can we isolate errors?
![Page 76: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/76.jpg)
Separate error channels
![Page 77: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/77.jpg)
Service aService B
supervisor
Request
Response
user error
error action
![Page 78: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/78.jpg)
Handling increased load in a
distributed system
![Page 79: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/79.jpg)
Easiest way to scale is to make the servers bigger
![Page 80: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/80.jpg)
Scale up has a limit, scale out doesn't
![Page 81: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/81.jpg)
Scale out is easy with isolation
![Page 82: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/82.jpg)
Actors give us isolation therefore scalability is easy with actors
![Page 83: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/83.jpg)
Routers
![Page 84: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/84.jpg)
Taking akka.Net to the next
level
![Page 85: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/85.jpg)
Akka.Remote
![Page 86: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/86.jpg)
Connecting 2 actor systems in a client-server architecture
![Page 87: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/87.jpg)
Akka.Cluster
![Page 88: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/88.jpg)
Takes remoting to the next level
![Page 89: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/89.jpg)
Treat multiple machines as one actor system
![Page 90: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/90.jpg)
Cluster aware routers
![Page 91: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/91.jpg)
Cluster sharding
![Page 92: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/92.jpg)
Akka.Persistence
![Page 93: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/93.jpg)
Allows for easy CQRS and Event sourcing with actors
![Page 94: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/94.jpg)
Akka.DistributedData
![Page 95: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/95.jpg)
Allows for sharing data between actors with strong eventual
consistency
![Page 96: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/96.jpg)
Where can I use akka.Net?
![Page 97: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/97.jpg)
IoT applications
![Page 98: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/98.jpg)
Job scheduling / cluster management
![Page 99: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/99.jpg)
Gaming
![Page 100: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/100.jpg)
User interfaces
![Page 101: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/101.jpg)
Microservices deployments
![Page 102: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/102.jpg)
akka.Net provides a solid foundation for the stronger constraints being
imposed today and in the future
![Page 103: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/103.jpg)
Want to learn more?
![Page 104: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/104.jpg)
akka.Net bootcamp github.com/petabridge/akka-bootcamp
![Page 105: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/105.jpg)
Reactive applications with akka.Net MEAP soon
![Page 106: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/106.jpg)
StackOverflow stackoverflow.com/tags/akka.net
![Page 107: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/107.jpg)
Want to contribute?
![Page 108: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/108.jpg)
Plenty of up for grabs issues github.com/akkadotnet/akka.net
![Page 109: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/109.jpg)
gitter.im/akkadotnet/akka.net
![Page 110: Reactive applications with Akka.Net - DDD East Anglia 2015](https://reader034.fdocuments.in/reader034/viewer/2022050614/587c95f81a28abfa5e8b6105/html5/thumbnails/110.jpg)
Q & A