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.9k
BEAM Architecture Handbook
Andrea Leopardi
May 26, 2019
Tweet
Share
More Decks by Andrea Leopardi
See All by Andrea Leopardi
The Umbrella and the Range
whatyouhide
0
17
gen_statem - OTP's Unsung Hero
whatyouhide
2
270
The World is a Network (and We Are Just Nodes)
whatyouhide
1
230
BEAM: The Perfect Fit for Networks
whatyouhide
1
210
Update from the Elixir team - 2022
whatyouhide
0
420
Testing Asynchronous OTP
whatyouhide
1
530
Elixir Sightseeing Tour
whatyouhide
0
440
Mint - Disrupting HTTP clients
whatyouhide
0
260
The Evolution of a Language
whatyouhide
0
160
Other Decks in Programming
See All in Programming
CSC305 Lecture 01
javiergs
PRO
1
390
AI Coding Meetup #3 - 導入セッション / ai-coding-meetup-3
izumin5210
0
400
詳しくない分野でのVibe Codingで困ったことと学び/vibe-coding-in-unfamiliar-area
shibayu36
3
4.1k
ててべんす独演会〜Flowの全てを語ります〜
tbsten
1
220
Local Peer-to-Peer APIはどのように使われていくのか?
hal_spidernight
2
440
Django Ninja による API 開発効率化とリプレースの実践
kashewnuts
0
900
株式会社 Sun terras カンパニーデック
sunterras
0
210
あなたの知らない「動画広告」の世界 - iOSDC Japan 2025
ukitaka
0
360
Чего вы не знали о строках в Python – Василий Рябов, PythoNN
sobolevn
0
150
CI_CD「健康診断」のススメ。現場でのボトルネック特定から、健康診断を通じた組織的な改善手法
teamlab
PRO
0
170
After go func(): Goroutines Through a Beginner’s Eye
97vaibhav
0
230
開発者への寄付をアプリ内課金として実装する時の気の使いどころ
ski
0
340
Featured
See All Featured
Making Projects Easy
brettharned
119
6.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
32
2.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
Building an army of robots
kneath
306
46k
4 Signs Your Business is Dying
shpigford
185
22k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Practical Orchestrator
shlominoach
190
11k
Building Applications with DynamoDB
mza
96
6.6k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
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