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
210
BEAM: The Perfect Fit for Networks
Andrea Leopardi
June 10, 2023
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
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
BEAM Architecture Handbook
whatyouhide
7
2.9k
The Evolution of a Language
whatyouhide
0
170
Other Decks in Programming
See All in Programming
CSC305 Lecture 10
javiergs
PRO
0
220
pnpm に provenance のダウングレード を検出する PR を出してみた
ryo_manba
1
110
デミカツ切り抜きで面倒くさいことはPythonにやらせよう
aokswork3
0
250
CSC305 Lecture 08
javiergs
PRO
0
270
iOSでSVG画像を扱う
kishikawakatsumi
0
150
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
350
O Que É e Como Funciona o PHP-FPM?
marcelgsantos
0
110
Go言語の特性を活かした公式MCP SDKの設計
hond0413
1
400
CSC509 Lecture 08
javiergs
PRO
0
230
Flutterで分数(Fraction)を表示する方法
koukimiura
0
140
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
360
SwiftDataを使って10万件のデータを読み書きする
akidon0000
0
230
Featured
See All Featured
Statistics for Hackers
jakevdp
799
220k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Leading Effective Engineering Teams in the AI Era
addyosmani
7
540
What's in a price? How to price your products and services
michaelherold
246
12k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
990
Optimizing for Happiness
mojombo
379
70k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
Visualization
eitanlees
149
16k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
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!