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
200
BEAM: The Perfect Fit for Networks
Andrea Leopardi
June 10, 2023
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
Update from the Elixir team - 2022
whatyouhide
0
410
Testing Asynchronous OTP
whatyouhide
1
520
Elixir Sightseeing Tour
whatyouhide
0
430
Mint - Disrupting HTTP clients
whatyouhide
0
250
BEAM Architecture Handbook
whatyouhide
7
2.8k
The Evolution of a Language
whatyouhide
0
160
Elixir - functional, concurrent, distributed programming for the rest of us
whatyouhide
2
340
Other Decks in Programming
See All in Programming
React は次の10年を生き残れるか:3つのトレンドから考える
oukayuka
41
16k
一人でAIプロダクトを作るための工夫 〜技術選定・開発プロセス編〜 / I want AI to work harder
rkaga
6
1k
AIに安心して任せるためにTypeScriptで一意な型を作ろう
arfes0e2b3c
0
330
PHPカンファレンス関西2025 基調講演
sugimotokei
6
1.1k
Constant integer division faster than compiler-generated code
herumi
2
430
대규모 트래픽을 처리하는 프론트 개발자의 전략
maryang
0
120
可変性を制する設計: 構造と振る舞いから考える概念モデリングとその実装
a_suenami
10
1.6k
CEDEC 2025 『ゲームにおけるリアルタイム通信への QUIC導入事例の紹介』
segadevtech
3
770
副作用と戦う PHP リファクタリング ─ ドメインイベントでビジネスロジックを解きほぐす
kajitack
3
530
構文解析器入門
ydah
7
2k
Understanding Kotlin Multiplatform
l2hyunwoo
0
250
AI Ramen Fight
yusukebe
0
130
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Done Done
chrislema
185
16k
Fireside Chat
paigeccino
38
3.6k
Building Adaptive Systems
keathley
43
2.7k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
We Have a Design System, Now What?
morganepeng
53
7.7k
Embracing the Ebb and Flow
colly
86
4.8k
Scaling GitHub
holman
461
140k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.4k
Become a Pro
speakerdeck
PRO
29
5.5k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
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!