22. What Elixir brings to the table
is a complete different surface
syntax […]. What you might
call a “non-scary" syntax, and
a load of extra goodies.
Joe Armstrong
24. BEAM
• transparent SMP/multi-core support (built-in load balancing)
• everything is a process
• processes are strongly isolated
• process creation and destruction is a lightweight operation
• message passing is the only way for processes to interact,
asynchronous communication
• processes have unique names
• no global data
25. Process
• links,monitors,and supervisors
• speed
OS process init: 1ms,1 MB/2 MB
BEAM process init: 1µs/2µs,1kB/2kB
• container of state
• garbage collection at process level
• can be distributed across cores
27. in BEAM the unit of concurrency is the process
and the process implements the Actor Model
28. Actor Model
The Actor Model is a conceptual model to
manage concurrency,defining general rules
about interaction among actors.
29. Actor Model
• mailbox,all messages are processed sequentially
• independence
• unique reference
• no shared memory
• (can) have private state
• state not alterable by other actors
• asynchronous messages communication