Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Elixir 101 - The Erlang VM
Search
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
85
Adapter Pattern
juanzuluaga
0
180
Maintainable CSS
juanzuluaga
0
88
UI Fundamentals for Programmers
juanzuluaga
0
320
UI fundamentals for programmers
juanzuluaga
0
400
Programming in paradise
juanzuluaga
1
150
Intro to Ruby
juanzuluaga
1
700
Other Decks in Programming
See All in Programming
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
0
150
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
130
Kotlinize Is Not Just Converting to Kotlin
chigichan24
1
170
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.6k
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
220
Verilogで学ぶCPU自作入門
uyuki234
8
4.2k
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
190
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
2
1.1k
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
180
Workers Cache を知る
syumai
0
370
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
300
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
580
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Accessibility Awareness
sabderemane
1
250
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
430
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
580
Speed Design
sergeychernyshev
33
2.2k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
270
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Leo the Paperboy
mayatellez
10
2.4k
Building Adaptive Systems
keathley
44
3.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
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?