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
Elixir. There and Back Again
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Nikolay Sverchkov
March 06, 2018
Programming
0
740
Elixir. There and Back Again
Nikolay Sverchkov
March 06, 2018
Tweet
Share
More Decks by Nikolay Sverchkov
See All by Nikolay Sverchkov
Authorization in the GraphQL era
ssnickolay
0
920
Rails 6: ActiveRecord
ssnickolay
0
46
Serverless Is Ruby Future
ssnickolay
0
790
Anything new Rails 6?
ssnickolay
1
1.4k
Serverless for mere mortals
ssnickolay
1
920
Evolution of Rails application architecture: 14 years in production
ssnickolay
3
1.3k
A Healthy Monolith
ssnickolay
0
1.4k
Other Decks in Programming
See All in Programming
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
520
RailsのValidatesをSwift Macrosで再現してみた
hokuron
0
130
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
230
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
150
Reactive ❤️ Loom: A Forbidden Love Story
franz1981
2
160
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
470
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
3.2k
ネイティブアプリとWebフロントエンドのAPI通信ラッパーにおける共通化の勘所
suguruooki
0
180
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
130
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
240
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
230
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
190
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
89
Ruling the World: When Life Gets Gamed
codingconduct
0
180
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
410
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
150
4 Signs Your Business is Dying
shpigford
187
22k
Designing for Performance
lara
611
70k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
210
Transcript
None
None
EVIL MARTIANS
EVIL MARTIANS
Nikolay Sverchkov @ssnickolay
Battle of facts
Dependencies
??? “Welcome email” ???
Sidekiq (Redis) “Welcome email” ???
GenServer defmodule EmailSender do use GenServer def handle_cast({:send, email}, state)
do # send email {:noreply, state} end end # Start the server {:ok, pid} = GenServer.start_link(EmailSender, []) # This is the client GenServer.cast(pid, {:send, “
[email protected]
"}) #=> :ok
Sidekiq (Redis) “Welcome email” [OTP] GenServer
Sidekiq (Redis) ??? “We love cashcache” [OTP] GenServer ???
Sidekiq (Redis) Memcached “We love cashcache” [OTP] GenServer ???
Memcached vs ETS
Sidekiq (Redis) Memcached “We love cashcache” [OTP] GenServer [OTP] ETS
Sidekiq (Redis) Memcached ??? “Where is my long polling?” [OTP]
GenServer [OTP] ETS ???
Sidekiq (Redis) Memcached AnyCable “Where is my long polling?” [OTP]
GenServer [OTP] ETS ???
Sidekiq (Redis) Memcached AnyCable “Where is my long polling?” [OTP]
GenServer [OTP] ETS Phoenix Channels
Sidekiq (Redis) Memcached AnyCable ??? Message broker [OTP] GenServer [OTP]
ETS Phoenix Channels ???
Sidekiq (Redis) Memcached AnyCable RabbitMQ Message broker [OTP] GenServer [OTP]
ETS Phoenix Channels RabbitMQ
None
Wait, it's like…
None
Erlang -> Java BEAM -> JVM Elixir -> ???
None
Development
??? Speed ???
Spring + Bootsnap Speed By Design
Spring + Bootsnap ??? Architecture [DDD] By Design ???
Spring + Bootsnap Trailblazer\Dry(Hanami?) Architecture [DDD] By Design By Design
Spring + Bootsnap Trailblazer\Dry(Hanami?) ??? Umbrella By Design By Design
???
Spring + Bootsnap Trailblazer\Dry(Hanami?) Hanami? Umbrella By Design By Design
By Design
Flawless Victory?
I have to rewrite everything with Elixir
Spring + Bootsnap Trailblazer\Dry(Hanami?) Hanami? ??? Debugging By Design By
Design Umbrella ???
Spring + Bootsnap Trailblazer\Dry(Hanami?) Hanami? Pry Debugging By Design By
Design Umbrella IEx.pry
Spring + Bootsnap Trailblazer\Dry(Hanami?) Hanami? Pry ??? Deploy By Design
By Design Umbrella IEx.pry ???
Spring + Bootsnap Trailblazer\Dry(Hanami?) Hanami? Pry Docker\Capistrano Deploy By Design
By Design Umbrella IEx.pry Mix\Distillery
Spring + Bootsnap Trailblazer\Dry(Hanami?) Hanami? Pry Docker\Capistrano ??? Tests tooling
By Design By Design Umbrella IEx.pry Mix\Distillery ???
Spring + Bootsnap Trailblazer\Dry(Hanami?) Hanami? Pry Docker\Capistrano Rspec\Capybara Tests tooling
By Design By Design Umbrella IEx.pry Mix\Distillery Espec\Hound
Overtime
Spring + Bootsnap Trailblazer\Dry(Hanami?) Hanami? ActiveRecord (Rom?) Docker\Capistrano Rspec\Capybara Upload
Image By Design By Design Umbrella Ecto Mix\Distillery Espec\Hound
Spring + Bootsnap Trailblazer\Dry(Hanami?) Hanami? ActiveRecord (Rom?) Docker\Capistrano Rspec\Capybara Send
Email with attachment By Design By Design Umbrella Ecto Mix\Distillery Espec\Hound
Spring + Bootsnap Trailblazer\Dry(Hanami?) Hanami? ActiveRecord (Rom?) Docker\Capistrano Rspec\Capybara Authorization
By Design By Design Umbrella Ecto Mix\Distillery Espec\Hound
Spring + Bootsnap Trailblazer\Dry(Hanami?) Hanami? ActiveRecord (Rom?) Docker\Capistrano Rspec\Capybara Update
deps By Design By Design Umbrella Ecto Mix\Distillery Espec\Hound
Summary
Good for: Monolith Microservice Terrible for: Concurrency Key points Good
for: Microservice Concurrency Terrible for: CMS Admin panel
Why exactly Elixir?
Why exactly Elixir? • Fast learning • A lot of
job offers • http://erlangjobs.ru/ • High salary (Ruby < Elixir < Go) https://t.me/proelixir https://wunsh.ru/