View
240
Download
2
Category
Preview:
Citation preview
Akka.NET
The Future of Distributed
Programming in .NET
Aaron Stannard,
Co-founder Akka.NET
@Aaronontheweb #jonthebeach
High Expectations for Backend
Developers
And the obvious ways to scale
are wrong.
Scenario 1: Surge in User
Activity
Obvious Solution: Sharding
Scenario 2: Real-time User
Interactivity
Obvious Solution: Read-after-
Write
Why is Distributed Programming
Hard?
Actor Model Core Concepts
Akka.NET Modules
• Akka – core actor library
• Akka.Remote – cross-node actor deployment /
communication
• Akka.Cluster – elastic actor networks (HA)
• Akka.Persistence – event-sourcing, durable actor state &
recovery
• Akka.Streams – streaming workflows
• Akka.Cluster.Tools – cluster singleton, distributed pub
sub
• Akka.Cluster.Sharding – durable state partitioning
• Akka.DData – eventually consistent data replication
Statefulness & Concurrency
with Actors
Actors have internal state
Actor state is always private,
modified when handling
messages, only shared via
immutable messages
Actors live in a family tree
Actors process one message at
a time
Communicate with Actors via
Reference
Actor References Have
Transparent Locations
Akka.Remote & Akka.Cluster:
Location Doesn't Matter
Stateful Apps Serve Results
from Memory
State Makes Protocols Work
Fault and Resource Isolation
with Actors
DeathWatch: Subscribe to
Actors' Lifecycle
Recommended