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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Saša Jurić
March 06, 2017
Programming
910
3
Share
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
190
Simplifying systems with Elixir - Belgrade
sasajuric
3
480
Simplifying systems with Elixir
sasajuric
2
590
Metagrokking Elixir
sasajuric
4
310
Solid Ground
sasajuric
15
1.3k
Elixir - valentine edition
sasajuric
0
140
What's the fuss about Phoenix?
sasajuric
2
1.1k
Phoenix
sasajuric
1
240
Phoenix
sasajuric
0
140
Other Decks in Programming
See All in Programming
Smarter Angular mit Transformers.js & Prompt API
christianliebel
PRO
1
120
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
150
[PHPerKaigi 2026]PHPerKaigi2025の企画CodeGolfが最高すぎて社内で内製して半年運営して得た内製と運営の知見
ikezoemakoto
0
320
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
180
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
170
PHPで TLSのプロトコルを実装してみる
higaki_program
0
730
Geminiをパートナーに神社DXシステムを個人開発した話(いなめぐDX 開発振り返り)
fujiba
0
130
The free-lunch guide to idea circularity
hollycummins
0
410
へんな働き方
yusukebe
6
2.9k
Strategy for Finding a Problem for OSS: With Real Examples
kibitan
0
130
「速くなった気がする」をデータで疑う
senleaf24
0
130
ローカルで稼働するAI エージェントを超えて / beyond-local-ai-agents
gawa
1
240
Featured
See All Featured
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
110
Odyssey Design
rkendrick25
PRO
2
560
Building an army of robots
kneath
306
46k
Building AI with AI
inesmontani
PRO
1
860
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Balancing Empowerment & Direction
lara
5
1k
So, you think you're a good person
axbom
PRO
2
2k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.2k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
250
Chasing Engaging Ingredients in Design
codingconduct
0
160
The Invisible Side of Design
smashingmag
302
51k
How to build a perfect <img>
jonoalderson
1
5.3k
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