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: The Perfect Fit for Networks
Search
Andrea Leopardi
June 10, 2023
Programming
1
140
BEAM: The Perfect Fit for Networks
Andrea Leopardi
June 10, 2023
Tweet
Share
More Decks by Andrea Leopardi
See All by Andrea Leopardi
The World is a Network (and We Are Just Nodes)
whatyouhide
0
150
Update from the Elixir team - 2022
whatyouhide
0
340
Testing Asynchronous OTP
whatyouhide
0
460
Elixir Sightseeing Tour
whatyouhide
0
350
Mint - Disrupting HTTP clients
whatyouhide
0
210
BEAM Architecture Handbook
whatyouhide
7
2.6k
The Evolution of a Language
whatyouhide
0
120
Elixir - functional, concurrent, distributed programming for the rest of us
whatyouhide
2
290
Papers we love: Elixir edition
whatyouhide
5
1k
Other Decks in Programming
See All in Programming
Modular Monolith Go Server with GraphQL Federation + gRPC
110y
1
550
これからの時代の新標準!SwiftTestingへの移行とトラブルシューティング
uetyo
0
440
現代のVueとTypeScript - 型安全の活用術
minako__ph
4
3.1k
dotfiles について話したい #湘なんか
stefafafan
2
280
フロントエンドカンファレンス北海道2024 『小規模サイトでも使えるVite 〜HTMLコーディングをよりスマートに〜』長谷川広武(ハム)
h2ham
1
2.5k
Ruby Parser progress report 2024
yui_knk
2
180
Wallet API, Verifier APIで実現するIDカード on iPhoneの世界
shitamori1272
1
320
Appleの新しいプライバシー要件対応: ノーコードアプリ プラットフォームの実践事例
nao_randd
1
450
From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE
ivargrimstad
0
940
Meet BrowserEngineKit
swiftty
0
190
BasicBasic認証
sadnessojisan
5
2.5k
TypeScriptで 負荷テストを書こう 〜k6のシングルバイナリの秘密〜
dora1998
7
2.8k
Featured
See All Featured
RailsConf 2023
tenderlove
26
790
What's in a price? How to price your products and services
michaelherold
241
11k
Fireside Chat
paigeccino
31
2.9k
The Pragmatic Product Professional
lauravandoore
30
6.2k
Writing Fast Ruby
sferik
623
60k
The Invisible Side of Design
smashingmag
295
50k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
38
9.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
230
17k
How GitHub (no longer) Works
holman
309
140k
Building an army of robots
kneath
302
42k
Teambox: Starting and Learning
jrom
131
8.7k
Documentation Writing (for coders)
carmenintech
65
4.3k
Transcript
None
None
TCP TAKING CONFERENCE PICTURES
None
ANDREALEOPARDI.COM @WHATYOUHIDE
None
@ITALIANCOMMENTS ITALIANS MAD AT FOOD
None
None
None
None
None
None
None
OUTLINE
BEAM FIT SERVERS CLIENTS
WHY IS THE BEAM SUCH A GREAT FIT?
THE BEAM THE PEOPLE AND
PROCESS = PERSON
None
CONCURRENCY
MEMORY
MEMORY AND THOUGHTS ARE IMMUTABLE
COMMUNICATION
HOW DO HUMANS SHARE INFORMATION?
SPEECH!
TALK = COPY INFORMATION
MESSAGE PASSING
SPEAKING IS ASYNC, LISTENING IS SYNC
NETWORKS
None
None
SERVERS
TCP
SSL
None
None
:gen_tcp
{:ok, listen_socket} = :gen_tcp.listen(4000, [])
{:ok, listen_socket} = :gen_tcp.listen(4000, []) {:ok, socket} = :gen_tcp.accept(listen_socket)
None
None
None
None
DynamicSupervisor
None
None
None
None
None
CLIENTS
RECONNECTIONS
POOLING
WHEN TO RECONNECT?
BACKOFF!
THUNDERING HERD
None
None
None
None
None
None
None
MULTIPLEXING
None
IDENTIFYING REQUESTS
HANDLING OFFLINE
None
CONCLUSION
LET IT CRASH? ...NO
None
None
* "IT'S ABOUT THE GUARANTEES", FRED HEBERT * "PERSISTENT CONNECTIONS
WITH GEN_STATEM", ME * THOUSAND ISLAND LIBRARY * "COMPUTER NETWORKS", A.TANENBAUM * "PROTOHACKERS IN ELIXIR" YOUTUBE SERIES
@WHATYOUHIDE THANK YOU!