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
Simplifying systems with Elixir - Belgrade
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Saša Jurić
October 25, 2018
Programming
3
480
Simplifying systems with Elixir - Belgrade
Saša Jurić
October 25, 2018
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
sasajuric
2
590
Metagrokking Elixir
sasajuric
4
300
Solid Ground
sasajuric
15
1.3k
Solid Ground
sasajuric
3
900
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
Oxlint JS plugins
kazupon
1
1.1k
今から始めるClaude Code超入門
448jp
8
9.3k
その「common」ディレクトリ、腐っていませんか?
kinocoboy2
1
100
15年目のiOSアプリを1から作り直す技術
teakun
0
420
Apache Iceberg V3 and migration to V3
tomtanaka
0
210
2026年 エンジニアリング自己学習法
yumechi
0
150
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
2
170
CSC307 Lecture 09
javiergs
PRO
1
850
CSC307 Lecture 11
javiergs
PRO
0
580
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
150
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
120
AI & Enginnering
codelynx
0
140
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
63
53k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
AI: The stuff that nobody shows you
jnunemaker
PRO
2
300
Java REST API Framework Comparison - PWX 2021
mraible
34
9.2k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
790
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
130
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
66
37k
From π to Pie charts
rasagy
0
140
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
200
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
Transcript
Simplifying systems with Elixir @sasajuric aircloak.com
Elixir functional concurrent
process ... foo(...) bar(...) ...
functional Elixir modules and functions immutable data first-class functions
... spawn(fn -> ... end) ...
process A ... foo(...) bar(...) ... process B ... baz(...)
qux(...) ...
send( process_b, some_message ) receive do message -> handle(message) end
process a process b
BEAM (Erlang VM)
BEAM (Erlang VM)
scheduler scheduler scheduler scheduler BEAM (Erlang VM) CPU CPU CPU
CPU
concurrent functional
activities incoming requests background jobs in-memory state load control …
managing activities multiple OS processes 3rd party products service managers
None
None
uniformity simpler development simpler testing simpler deployment simpler maintenance improved
collaboration
None
theerlangelist.com
git clone https://github.com/sasa1977/erlangelist.git mix deps.get && pushd assets && npm
install && popd iex -S mix phx.server
None
serving requests
http listener https listener
http listener https listener handler 1 handler 2 handler n
…
usage stats
stats collector handler handler handler
stats collector disk writer
def store(path, data) do File.write!( path, :erlang.term_to_binary(data) ) end
def read(path, default) do path |> File.read!() |> :erlang.binary_to_term() rescue
ArgumentError -> default end
cleanup
scheduler cleanup job periodically starts
HTTPS
our system CA server certificate request challenge info challenge
certifier http server usage stats
dev CA server
service management
defmodule StatsCollector do def start_link() do # ... end #
... end
Supervisor.start_link( [ StatsCollector, Cleanup ], # .. )
supervisor stats collector cleanup
supervisor worker
1
1 2
1 2 3 4 5
1 2 6 9 7 8 3 4 5
erlangelist usage stats web
usage stats stats collector cleanup
web ACME server main site certifier
None
technical feature built-in options services GenServer, Task service manager Supervisor
service registry Registry k-v ets, mnesia web server phoenix, plug, cowboy periodical jobs :timer, quantum, periodic load regulation jobs, safetyvalve, sbroker concurrent flows Flow, GenStage
Elixir in a nutshell start simple go far
Elixir guides Phoenix guides Learning resources Elixir forum
40% off using code ctwelixirbg18 at manning.com slides available at
bit.ly/elixirbg102018