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
OTP in 15 Minutes or Less
Search
Gavin M. Roy
August 04, 2016
Programming
0
180
OTP in 15 Minutes or Less
Slides for my talk given at the Philly Elixir Meetup on the OTP part of Elixir/OTP.
Gavin M. Roy
August 04, 2016
Tweet
Share
More Decks by Gavin M. Roy
See All by Gavin M. Roy
RabbitMQ, Event-Driven Architectures, and Data Warehousing
gmr
3
1.1k
Messaging Standards and Systems: AMQP & RabbitMQ
gmr
4
950
Integrating PostgreSQL with RabbitMQ
gmr
6
1.9k
Sprockets
gmr
2
230
Become a Logging Expert in 30 Minutes
gmr
4
620
An Introduction to Tornado
gmr
7
260
Concurrency with Multiprocessing in Python
gmr
3
400
Other Decks in Programming
See All in Programming
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
7
4.3k
KIKI_MBSD Cybersecurity Challenges 2025
ikema
0
140
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
1
330
クラウドに依存しないS3を使った開発術
simesaba80
0
220
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
130
AIエージェントの設計で注意するべきポイント6選
har1101
6
3.1k
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
150
CSC307 Lecture 01
javiergs
PRO
0
670
gunshi
kazupon
1
140
AtCoder Conference 2025
shindannin
0
930
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
490
Grafana:建立系統全知視角的捷徑
blueswen
0
280
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
A Modern Web Designer's Workflow
chriscoyier
698
190k
A Soul's Torment
seathinner
4
2.1k
HDC tutorial
michielstock
1
320
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
39
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
200
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
140
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
270
Typedesign – Prime Four
hannesfritz
42
2.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Transcript
OTP in 15 Minutes or Less Philly Elixir Meetup August
2016 Gavin M. Roy VP of Architecture AWeber Communications
Processes • Heart of Concurrency • Are light-weight independent tasks
• Share nothing • Communicate via message passing • Implement a basic contract
Processes • Are long lived in a message loop •
Can link to other processes • Can spawn other processes • Can Crash!
Enter OTP It’s not just what you do, it’s how
you do it
What is OTP? • The standard library that ships with
Erlang • Design principles for code structure • A core set of common patterns and behaviors
OTP Concepts • Applications • Collection of Modules • Runtime
Structure / Processes • Supervisors • Manage Processes • gen_* Behaviors • Releases
Applications • Application Resource File Defines application modules, defaults, and
required OTP applications • Application Behavior start/2 and stop/1 {application, name, [ {description, ""}, {vsn, "1"}, {registered, []}, {applications, [ kernel, stdlib ]}, {mod, {server, []}}, {env, []} ]}.
Supervisors Return a list of Child Specifications that • Defines
the process IDs and MFAs • What to do if processes crashes • How to shutdown the processes • What type of processes the children are
Supervision Tree S W S W W S S W
W W W W
gen_server - init/1 - handle_call/3 - handle_cast/2 -
handle_info/2 - terminate/2 - code_change/3
Other OTP Behaviors Built-In • gen_fsm (Deprecated) Finite State Machine
• gen_statem Event State Machine • gen_event Generic event handling behavior 3rd Party Examples • gen_leader Distributed Master/Slave topology • gen_tcp_server Generic TCP Server • gen_rpc Scalable Multi-node RPC library
Releases • Bundle Application • cli control application • Hot-code
swap upgrade steps
Questions? gmr @crad