Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Elixir 101 - The Erlang VM
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Juanda Zapata
October 21, 2015
Programming
340
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Elixir 101 - The Erlang VM
A brief introduction of the BEAM (The Erlang VM), that paves the way to talk about Elixir.
Juanda Zapata
October 21, 2015
More Decks by Juanda Zapata
See All by Juanda Zapata
Principles of Visual Design
juanzuluaga
0
79
Adapter Pattern
juanzuluaga
0
170
Maintainable CSS
juanzuluaga
0
86
UI Fundamentals for Programmers
juanzuluaga
0
280
UI fundamentals for programmers
juanzuluaga
0
400
Programming in paradise
juanzuluaga
1
140
Intro to Ruby
juanzuluaga
1
700
Other Decks in Programming
See All in Programming
TAKTでAI駆動開発の品質を設計する
j5ik2o
7
1.3k
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
260
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
680
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
130
dRuby over BLE
makicamel
2
340
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
190
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
5
1.1k
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
120
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
13
4.6k
Lessons from Spec-Driven Development
simas
PRO
0
200
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
250
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
170
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
3.1k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
250
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
580
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
310
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
850
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
590
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Transcript
elixir 101 part 1/2
@juanzuluaga
BEAM The Erlang VM
disclaimer
I'm just a curious noob
history
• created at Ericsson in 1986
• created at Ericsson in 1986 • open sourced in
1995
• created at Ericsson in 1986 • open sourced in
1995 • current version 18.1
created to solve telephony applications
the original Ericsson switches had ~5MB of memory
it powers ~40% of all the mobile traffic (LTE, SMS,
3G) across Europe
features
• high availability
the legendary nine nines
the legendary 99,9999999%
that's ~31ms/year
• high availability • fault tolerant (self healing)
supervised applications (modules)
• high availability • fault tolerant (self healing) • distributed
• high availability • fault tolerant (self healing) • distributed
• concurrent
solved the c10k problem
and the c100k problem
30 years ago!
• high availability • fault tolerant (self healing) • distributed
• concurrent • hot code loading (zero downtime deploys)
• high availability • fault tolerant (self healing) • distributed
• concurrent • hot code loading (zero downtime deploys) • great tooling (demo)
internals
processes
these are not OS processes
very lightweight abstraction running on the BEAM
None
• cheap to create and destroy
• cheap to create and destroy • completely isolated
• cheap to create and destroy • completely isolated •
memory is not shared
• cheap to create and destroy • completely isolated •
memory is not shared • communication over messages
• cheap to create and destroy • completely isolated •
memory is not shared • communication over messages • supervised (different strategies)
• cheap to create and destroy • completely isolated •
memory is not shared • communication over messages • supervised (different strategies) • distributed
sounds familiar?
sounds familiar? the actor model
garbage collector
• generational (old & new zones)
• generational (old & new zones) • collected per process
• generational (old & new zones) • collected per process
• no need if the process finished
• generational (old & new zones) • collected per process
• no need if the process finished • no global pauses
scheduler
• the BEAM creates 1 per core
• the BEAM creates 1 per core • memory is
not shared
• the BEAM creates 1 per core • memory is
not shared • perform load balancing
• the BEAM creates 1 per core • memory is
not shared • perform load balancing • guarantees that a process won't block others
BEAM
companies using the BEAM
• Whatsapp (2 million users/server)
• Whatsapp (2 million users/server) • Facebook
• Whatsapp (2 million users/server) • Facebook • Goldman Sachs
(High frequency trading)
• Whatsapp (2 million users/server) • Facebook • Goldman Sachs
(High frequency trading) • github (git proxy, gh-pages, gists)
• Whatsapp (2 million users/server) • Facebook • Goldman Sachs
(High frequency trading) • github (git proxy, gh-pages, gists) • heroku
• Amazon SimpleDB
• Amazon SimpleDB • RabbitMQ
• Amazon SimpleDB • RabbitMQ • CouchDB
• Amazon SimpleDB • RabbitMQ • CouchDB • Riak
really? using a 30 y/o tech?
it's under very active development
erlang 18 was released 30 days ago
why is the industry looking back?
telcos had tough constrains
we're experiencing problems that were solved 30 years ago
problems that were hidden by the Moore's Law
erlang in 1 minute
purely functional lang
data is immutable
powerful pattern matching
actor based concurrency
None
OTP Open Telecom Platform
huge repository of all kinds of libraries
• crypto
• crypto • http servers
• crypto • http servers • tcp servers
• crypto • http servers • tcp servers • realtime
distributed databases
• crypto • http servers • tcp servers • realtime
distributed databases • GUI and graphics
thanks!
questions?