Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Anatomy of an Elixir Process and Actor Communication

Mustafa Turan
November 29, 2016

Anatomy of an Elixir Process and Actor Communication

Anatomy of an Elixir Process
How Elixir actors communicate via GenServer methods?

Mustafa Turan

November 29, 2016
Tweet

More Decks by Mustafa Turan

Other Decks in Programming

Transcript

  1. Erlang Virtual Machine OS Process (1) Process (2) Process (3)

    …. Process (n) Erlang VM -- pid 109 -- pid 206 -- pid 3114 -- ... STATE Mailbox CALCULATION FUNCTIONS (MSG LISTENERS) (pid 109) @mustafaturan
  2. 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 Communication Basic / one direction
  3. Sends a message how r u? Responses to message Good!

    How r u? (GenServer.call) Mustafa Gozde @mustafaturan Actor Communication Basic / bi-directional
  4. Sends a message Mustafa Gozde is unreachable! Changed her number

    or Out of charge or Airplane mode Mobile Operator Phone number is not available (GenServer.call) @mustafaturan Actor Communication No process
  5. 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 Gozde Send another message? Try to reach her from other channels / call her? Go crazzy ???? He will behave like how you code it! @mustafaturan Actor Communication TTL / bi-directional
  6. 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.
  7. 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