Each Actor is pontentially remote and it exchange messages using a queue.
spawn functionfor launching a process.
sendfor sending a message to a process
- a process can invoke
receivefor receiving a message in its mailbox and process it
linkif a process fail, then the failure is propagated to the linked “owner”
- process can maintain a state
register pidfor 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
- B. Cabral e P. Marques, «Implementing Retry - Featuring AOP», 2009, pagg. 73–80.
- G. Lagorio e M. Servetto, «Strong exception-safety for checked and unchecked exceptions.», The Journal of Object Technology, vol. 10, pag. 1:1, 2011.