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
BEAM Architecture Handbook
Search
Andrea Leopardi
May 26, 2019
Programming
7
2.8k
BEAM Architecture Handbook
Andrea Leopardi
May 26, 2019
Tweet
Share
More Decks by Andrea Leopardi
See All by Andrea Leopardi
gen_statem - OTP's Unsung Hero
whatyouhide
2
250
The World is a Network (and We Are Just Nodes)
whatyouhide
1
220
BEAM: The Perfect Fit for Networks
whatyouhide
1
200
Update from the Elixir team - 2022
whatyouhide
0
400
Testing Asynchronous OTP
whatyouhide
1
520
Elixir Sightseeing Tour
whatyouhide
0
420
Mint - Disrupting HTTP clients
whatyouhide
0
250
The Evolution of a Language
whatyouhide
0
160
Elixir - functional, concurrent, distributed programming for the rest of us
whatyouhide
2
330
Other Decks in Programming
See All in Programming
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
520
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
1
720
Cursor AI Agentと伴走する アプリケーションの高速リプレイス
daisuketakeda
1
130
AIコーディング道場勉強会#2 君(エンジニア)たちはどう生きるか
misakiotb
1
270
Webの外へ飛び出せ NativePHPが切り拓くPHPの未来
takuyakatsusa
2
460
プロダクト志向なエンジニアがもう一歩先の価値を目指すために意識したこと
nealle
0
120
A2A プロトコルを試してみる
azukiazusa1
2
1.3k
システム成長を止めない!本番無停止テーブル移行の全貌
sakawe_ee
1
150
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
250
datadog dash 2025 LLM observability for reliability and stability
ivry_presentationmaterials
0
400
Discover Metal 4
rei315
2
110
Benchmark
sysong
0
280
Featured
See All Featured
Practical Orchestrator
shlominoach
188
11k
How GitHub (no longer) Works
holman
314
140k
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Visualization
eitanlees
146
16k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Building Applications with DynamoDB
mza
95
6.5k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Statistics for Hackers
jakevdp
799
220k
Rebuilding a faster, lazier Slack
samanthasiow
82
9.1k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Transcript
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
receive do :some_message -> # ... :other_message -> # ...
end
def handle_info(:some_message, state) do # ... end def handle_info(:other_message, state)
do # ... end def handle_info(unknown, state) do Logger.warn("Unknown message") {:noreply, state} end
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
defmodule MyAppWeb.Controller do use MyAppWeb, :controller def show(conn, %{"id" =>
id}) do id = String.to_integer(id) end end
defmodule MyAppWeb.Controller do use MyAppWeb, :controller def show(conn, %{"id" =>
id}) do case Integer.parse(id) do {id, ""} -> # ... _other -> send_resp(conn, 400, "bad id") end end end
None
None
None
None
None
None
None
None
None
Node.monitor(consumer_node, true) monitor_ref = Process.monitor(consumer_pid) send(consumer_pid, {monitor_ref, message}) receive do
{:ack, ^monitor_ref} -> Process.demonitor(monitor_ref, [:flush]) {:DOWN, ^monitor_ref, _, _, _} -> give_to_another_consumer(message) {:nodedown, ^consumer_node} -> give_to_another_consumer(message) end
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None