Hamidreza Soleimani
Practical Look at Erlang
 
Concurrent, Fault Tolerant and Distributed Programming Language
Tehran Linux User Group
February 18, 2014
Strong Typing
Functional
Garbage Collected
Runtime System
Erlang Birthday:   1986
History & 
Philosophy 
Fault Tolerant DistributedConcurrent
History & 
Philosophy 
1. Concurrent
Sequential
Concurrent
Parallel
1. Concurrent
Hamid RezaMajid
Actor Model
Async / Sync
Immutable
No Race Condition
Reenterancy Light Process
HiHi
Fine?
Hi
Fine!
Hi
Light
Hi
Wear
2. Fault Tolerant
CorrectiveDefensive
“ Let it crash! ”“ Try to survive! ”
2. Fault Tolerant
In Failure
“ Doesn't Need Restart ”“ Needs Restart ”
Human
Hot Swapping Feature 
Example: Apache Example: Yaws
3. Distributed
Load
Balancer
N1
N 4
N 3
N 2
N1
N 4
N 3
N 2
N1
N 4
N 3
N 2 Zone 2
Zone 3
Zone 1
Reliability
Scalability
Performance
No Single 
Point of 
Failure 
3. Distributed
epmd
Node 1
Hamid
Port: 4369
Node 2
Majid
Port: 42042Port: 42043
Erlang Port Manager Daemon
Erlang Distributed Protocol
No Need to IDL
Question?
­ Hamidreza.s@gmail.com