Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Solid Ground
Search
Saša Jurić
March 06, 2017
Programming
950
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Solid Ground
ElixirDaze 2017
Video available at
https://www.youtube.com/watch?v=5SbWapbXhKo
Saša Jurić
March 06, 2017
More Decks by Saša Jurić
See All by Saša Jurić
Such Great Heights, Code BEAM Lite, Amsterdam 2018
sasajuric
0
210
Simplifying systems with Elixir - Belgrade
sasajuric
3
500
Simplifying systems with Elixir
sasajuric
2
630
Metagrokking Elixir
sasajuric
4
350
Solid Ground
sasajuric
15
1.3k
Elixir - valentine edition
sasajuric
0
160
What's the fuss about Phoenix?
sasajuric
2
1.2k
Phoenix
sasajuric
1
310
Phoenix
sasajuric
0
170
Other Decks in Programming
See All in Programming
クラウドエージェントは、 何がそんなに便利なのか / what makes cloud agents so useful
rkaga
3
480
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
0
130
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
210
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
190
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
2.9k
Seven New Principles of Software Engineering
yegor256
0
290
気持ちぃ〜角丸 Squircle
ryu1013
0
340
パスワード再設定メールのURLについて知っておこう
uyuki234
0
180
APNsからLive Activityを開始する話
yumnumm
0
180
Groovy as a human and AI friendly programming language
paulk
0
110
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.9k
Modernizing iOS Apps
seyfoyun
0
110
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
530
Ruling the World: When Life Gets Gamed
codingconduct
0
420
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
What's in a price? How to price your products and services
michaelherold
247
13k
Google's AI Overviews - The New Search
badams
0
1.6k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
WENDY [Excerpt]
tessaabrams
14
40k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
900
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1.1k
Tell your own story through comics
letsgokoyo
1
1.1k
Statistics for Hackers
jakevdp
799
230k
Transcript
Solid ground @sasajuric aircloak.com
None
long-running system many tasks soft real-time finite time program all-or-nothing
hard real-time
NIFs
scheduler scheduler scheduler scheduler BEAM CPU CPU CPU CPU
frequent context switches
t1 t2 t3 t4 t5 10 s 1 ms 1
ms 1 ms 1 ms
t1 t2 t3 t4 t5 t1 BEAM scheduler
t2 t3 t4 t5 t1 cooperative scheduler
thread 1 thread n … long running task long running
task blocked cooperative scheduler
thread 1 thread n … long running task long running
task not blocked :-) BEAM scheduler
activities as runtime citizens
send(pid, :please_stop)
mref = Process.monitor(pid) send(pid, :please_stop) receive do {:DOWN, ^mref, :process,
^pid, _reason} -> :ok end
mref = Process.monitor(pid) send(pid, :please_stop) receive do {:DOWN, ^mref, :process,
^pid, _reason} -> :ok after :timer.seconds(5) -> Process.exit(pid, :kill) receive do {:DOWN, ^mref, :process, ^pid, _reason} -> :ok end end
task = Task.async(fn -> ... end) case Task.yield(task, :timer.seconds(5)) do
{:ok, result} -> do_something(result) nil -> Task.shutdown(task, :brutal_kill) end
shared-nothing concurrency
Process heap resources
process-owned “stuff” is released
supervision tree
system backend frontend chat history repo cache endpoint
system backend chat history repo
supervisor foundations frequent context switching activities as runtime citizens observable
process termination stoppable processes shared-nothing concurrency
runtime guarantees syntax developer friendliness ecosystem
Image credit Scales of Justice