Anatomy of an elixir process and Actor Communication
Click here to load reader
-
Upload
mustafa-turan -
Category
Software
-
view
137 -
download
2
Transcript of Anatomy of an elixir process and Actor Communication
Anatomy of an Elixir Process11/2016by Mustafa Turan
Erlang/Elixir MeetupZendesk - Dublin
What’s an Elixir Process?
Elixir Process inside BEAM
Actor Communication
Summary10 min
@mustafaturan
STATE
Mailbox
CALCULATION FUNCTIONS(MSG LISTENERS)
@mustafaturan
Elixir/Erlang ProcessAn actor
Erlang Virtual MachineOSProcess (1)
Process (2)
Process (3)
….
Process (n)
Erlang VM -- pid 109 -- pid 206 -- pid 3114 -- ...
STATE
Mailbox
CALCULATION FUNCTIONS(MSG LISTENERS)
(pid 109)
@mustafaturan
Sends a message with no-reply
Christmas sales up to %90, come to our new store and
start shopping!
(GenServer.cast)
Company A girl
@mustafaturan
Actor CommunicationBasic / one direction
Sends a messagehow r u?
Responses to messageGood! How r u?
(GenServer.call)
Mustafa Gozde
@mustafaturan
Actor CommunicationBasic / bi-directional
Sends a message
Mustafa Gozdeis unreachable!
Changed her numberor
Out of chargeor
Airplane mode
Mobile Operator
Phone number is not available
(GenServer.call)
@mustafaturan
Actor CommunicationNo process
Sends a message(GenServer.call)
Mustafa has a TTL of 1 minute! Also knows the message delivered
She did not replied in one minute!What will Mustafa do?
Mustafa GozdeSend another message?
Try to reach her from other channels / call her?
Go crazzy ????
He will behave like how you code it!@mustafaturan
Actor CommunicationTTL / bi-directional
Sends a message#1
Mustafa
Sends a message#2
Mustafa’s Message Box(1)---------------------------------------
Message #1 from Gozde
Gozde
Other girl
Mustafa’s Message Box(2)---------------------------------------
Message #1 from Gozde(*)Message #2 from Other Girl
Mustafa’s Message Box(3)---------------------------------------
Message #2 from Other Girl
Mustafa’s Message Box(4)---------------------------------------
*Processing not finished yet
@mustafaturan
Responses to message #1
Responses to message #2
Mustafa may change its state depending on messages.
Actor dies?What happens if the actor dies?
Sends message to its supervisor
- Down/Exit:
- Depending on strategy, supervisor decide what to do.
- Could handle its own crash by catching the ‘exit’ signal
QUESTIONS
THANKS