-
Notifications
You must be signed in to change notification settings - Fork 4
development actor model
Aktor po otrzymaniu wiadomości może:
- zmienić swój stan saldo: 1000 → 500
- wysłać wiadomość innemu aktorowi
Konto Kowalski
│
│ "przelej 500"
↓
Konto Nowak
- utworzyć nowego aktora Np. aktor OrderManager może stworzyć:
Order/123
Order/124
Order/125
Aktorzy komunikują się przez wiadomości
Zamiast:
obiekt A
↓
bezpośrednio zmienia
↓
obiekt B
masz:
A
│
│ message
│
↓
B
Aktor może reprezentować:
- User
- Order
- BankAccount
- ChatRoom
- Game
- IoT Device
- ShoppingCart
- Auction
ale także:
- Kafka partition
- worker
- connection
- cache
- scheduler
Aktor to przede wszystkim model współbieżności i komunikacji, a nie konkretny rodzaj obiektu biznesowego.
Actor Model = zamiast wielu wątków grzebiących we wspólnym stanie, masz wiele niezależnych „skrzynek”, które mają własny stan i komunikują się poprzez wiadomoś.
A jego największa zaleta to równoległość pomiędzy aktorami + brak race condition wewnątrz pojedynczego aktora dzięki sekwencyjnemu przetwarzaniu wiadomości.
Actor Model to przede wszystkim sposób organizacji programu.
Akka jest jednym z najbardziej znanych przykładów. Programujesz aktorów, a framework zajmuje się m.in. komunikacją, współbieżnością i lokalizacją aktorów.
Erlang i jego ekosystem BEAM gdzie naturalnie piszesz programy składające się z procesów komunikujących się wiadomościami.
- A (53)
- B (92)
- C (45)
- D (63)
- E (17)
- F (7)
- G (158)
- H (12)
- I (6)
- J (40)
- K (50)
- L (78)
- M (45)
- N (37)
- O (121)
- P (407)
- R (21)
- S (34)
- T (40)
- U (3)
- V (7)
- W (14)
- Y (1)
- Z (3)