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
Solid Ground
Search
Saša Jurić
March 06, 2017
Programming
3
900
Solid Ground
ElixirDaze 2017
Video available at
https://www.youtube.com/watch?v=5SbWapbXhKo
Saša Jurić
March 06, 2017
Tweet
Share
More Decks by Saša Jurić
See All by Saša Jurić
Such Great Heights, Code BEAM Lite, Amsterdam 2018
sasajuric
0
190
Simplifying systems with Elixir - Belgrade
sasajuric
3
470
Simplifying systems with Elixir
sasajuric
2
580
Metagrokking Elixir
sasajuric
4
300
Solid Ground
sasajuric
15
1.2k
Elixir - valentine edition
sasajuric
0
140
What's the fuss about Phoenix?
sasajuric
2
1.1k
Phoenix
sasajuric
1
240
Phoenix
sasajuric
0
130
Other Decks in Programming
See All in Programming
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
200
AIエージェントの設計で注意するべきポイント6選
har1101
7
3.4k
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
0
210
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
410
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
600
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.7k
Package Management Learnings from Homebrew
mikemcquaid
0
170
SourceGeneratorのススメ
htkym
0
180
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.2k
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
110
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
110
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
230
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.6k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.8k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
720
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
630
First, design no harm
axbom
PRO
2
1.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
100
Code Reviewing Like a Champion
maltzj
527
40k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Design in an AI World
tapps
0
140
Balancing Empowerment & Direction
lara
5
880
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