[Main website]

paradigm/actor-model

Each Actor is pontentially remote and it exchange messages using a queue.

In Elixir:

  • spawn function for launching a process.
  • send for sending a message to a process
  • a process can invoke receive for receiving a message in its mailbox and process it
  • link if a process fail, then the failure is propagated to the linked “owner”
  • process can maintain a state
  • register pid for making a private spawn process PID as public and anyone knowing the PID can send messages to the process
  • files are process, so file-system can be distributed
  • this is the API for process https://hexdocs.pm/elixir/Process.html
  • supervisors are used for managing errors in child process https://hexdocs.pm/elixir/Supervisor.html#content

A similar API, but more OOP-oriented, is in Akka

Links to this note