Programowanie reaktywne z użyciem aktorów i frameworka Akka.NET

Bartosz Sypytkowski

@Horusiath

http://bartoszsypytkowski.com

Agenda

  • Jakie wyzwania niesie jutro?
  • Reactive manifesto
  • Aktorzy
  • Zarządzanie aktorami
  • Przekraczanie granicy maszyny
  • Zachowywanie stanu
  • Testowanie

Czasy się zmieniają

Kiedyś

Teraz

  • Jeden rdzeń
  • Dedykowane serwery
  • Droga pamięć
  • Wolna sieć
  • Małe ilości danych
  • Wiele rdzeni
  • Klastry/chmury obliczeniowe
  • Tania pamięć
  • Szybka sieć
  • "Big data"

Co gorsza...

...użytkownicy stali się niecierpliwi

Co zrobić?

http://www.reactivemanifesto.org/

Programowanie z użyciem aktorów

Aktorzy

  • Odizolowany
  • Asynchroniczny na zewnątrz
  • Synchroniczny wewnątrz
  • Może zmienić swoje zachowanie w sposób dynamiczny

Hierarhie aktorów

  1. Rodzic/dziecko
  2. Pub/Sub
  3. Strażnik
  • Izolacja
  • Odpowiedzialność 1-za-1
  • Odpowiedzialność wszyscy za jednego

Zarządzanie błędami

Routing 

Round robin

Broadcast

Consistent hashing

Smallest mailbox

... i więcej

Remoting

Przed

Remoting

Po

Aktorzy a stany

  • SQL Server
  • PostgreSQL
  • Cassandra
  • EventStore
  • Azure

Pozostali

Akka

Akka.Cluster

Akka.Remote

Persistence

Akka.TestKit

Pozostali

Akka

Akka.Cluster.Sharding

Akka.Cluster.Tools

Akka.Cluster

Akka.Remote

Persistence

Akka.TestKit

Akka.Streams

Gdzie zacząć?

  • getakka.com

  • learnakka.com

  • youtube.com (kanał Petabridge)

  • gitter.im/akkadotnet/akka.net

  • bartoszsypytkowski.com

  • materiały na temat Akki na JVM

Konsulting

Petabridge

Nethouse

"Enterprise"

Dziękuję za uwagę

Reactive programming in Akka.NET

By Bartosz Sypytkowski

Reactive programming in Akka.NET

  • 1,011