Dieses Modul hat viele Werkzeuge gezeigt, um gemeinsamen veränderlichen Zustand zu schützen: Sperren, Interlocked, nebenläufige Sammlungen,
Momentaufnahmen. Alle haben eins gemeinsam: Sie verwalten das Problem. Das Akteurmodell schafft es ab. Es gibt keinen gemeinsamen Zustand
mehr, sondern nur noch Zustand, der genau einem Akteur gehört, und Nachrichten, die Akteure einander schicken. Diese Lektion baut einen Akteur aus
den Bausteinen, die Sie schon kennen, ersetzt damit die Sperre der Buchung aus Lektion 3.11.6 und zeigt, wo ein Akteur im eigenen Prozess an
seine Grenzen kommt. Genau dort beginnt K4 mit Orleans.
Drei Regeln
Ein Akteur ist ein kleines Stück Programm mit drei Eigenschaften:
- Er hat Zustand, und nur er. Niemand außer dem Akteur liest oder schreibt seine Daten. Kein anderer Code hält einen Verweis darauf.
- Er bekommt Nachrichten. Wer etwas vom Akteur will, schickt ihm eine Nachricht in seinen Briefkasten (mailbox) und bekommt, wenn er fragt, eine Antwort zurück.
- Er bearbeitet eine Nachricht nach der anderen. Nie zwei zugleich. Während er eine Nachricht bearbeitet, ändert sich sein Zustand nur durch ihn selbst.
Aus der dritten Regel folgt alles Weitere: Prüfen-dann-Handeln ist kein Wettlauf mehr, denn zwischen Prüfen und Handeln kommt keine andere Nachricht dazwischen. Eine Verklemmung zweier Sperren gibt es nicht, denn es gibt keine Sperren. Gleichzeitigkeit entsteht zwischen Akteuren, nicht in ihnen: Hundert Kalender, hundert Akteure, hundert Buchungen gleichzeitig, aber in jedem Kalender eine nach der anderen.