SlideShare a Scribd company logo
Better way to pay
ELIXIR
After 2 years in action
Oliver
Payout CTO
Sept 2019
Only
technologies
???
Plus My
Team
😂😂😂
Jana
Payout director
All Team
!!! <3 :-)
There is
something
missing!!!
Oliver,
what about
performance?
Peter
Payout founder
10k transactions/sec
Scaling everywhere
No Limits
We believe what we do
and how we do it
Oliver, which
technologies
we use?
.NET
😂😂😂😂
It’s hardcoded
Payout 2017
Elixir since 2017
Ruby since 2010
Intro - Oliver
Current version 1.9.1 (July 2019)
Since 2011
Based on BEAM (1982-1991 …)
Supported by Plataformatec
811 contributors
> 15k commits
Intro - Elixir
Forum
~ 12k topics
~10k users (2.5k active)
Slack > 22k users
Current version 1.4.10 (Sept 2019)
Since 2014
693 contributors
> 5k commits
Intro - Phoenix
Supported by Plataformatec
Plug vs Middleware(Rails)
Why Erlang
Erlang
● First choice 🤯
● + Partner companies use it
● + OTP (Fault tolerance)
● + In production for decades
● + Still active and progressive
● + Speed
● - Learning curve
● - Syntax
Why Elixir
Elixir
● Second choice
● + Erlang
● + Syntax
● + Syntax similar to Ruby
● + Learning curve
● + Phoenix
● - “Young” language
● - OOP -> FP
● - New Environment (Docker, …)
How we started
Rails developers
Minimal FP skills
First touch with
- Elixir,
- Erlang,
- Hex,
- Docker
- ...
What about YOU?
“Fears are nothing more than a state of mind.”
—Napoleon Hill
Multiple Processes
GenServers everywhere?
More |> (pipe operator)
Multiple applications
Cluster
Some advise
Own packages
More modular
Lost focus to Phoenix
Phoenix LiveView more
Let’s see some code
GenServer
Client - Server Behaviour
Supervised
One process
Synch/Async Messaging
State
GenServer
Very fast
State in Memory
Bottleneck
Simple Queue - Timeout
No concurrency
Solutions
- Pool boy
- DynamicSupervisor
- Task.async
GenServer
Very fast
State in Memory
Bottleneck
Simple Queue - Timeout
No concurrency
More
Solutions
- Pool boy
- DynamicSupervisor
- Task.async
Some hints
Pattern match in functions Tuple return
- fault tolerance flow
GenStage
“flow”/pipeline
multiple GenServers
buffers
producer,consumer,...
More
https://medium.com/@andreichernykh/elixir-a-few-things-about-genstage-id-wish-to-knew-some-time-ago-b826ca7d48ba
GenStage
https://medium.com/@andreichernykh/elixir-a-few-things-about-genstage-id-wish-to-knew-some-time-ago-b826ca7d48ba
Stream
lazy enumerables
lazy operations
future computations
More
Flow
GenStage
computations on collections
similar to Stream
More
Let’s see some code
Enum - 3 042 430 lines (440MB)
https://public.enigma.com/datasets/national-climatic-weather-center-consolidated-weather-reports-
1956/cc62066f-d7e4-4077-ac4e-d7cc09ceba33
Stream - 3 042 430 lines (440MB)
https://public.enigma.com/datasets/national-climatic-weather-center-consolidated-weather-reports-
1956/cc62066f-d7e4-4077-ac4e-d7cc09ceba33
Flow - 3 042 430 lines (440MB)
https://public.enigma.com/datasets/national-climatic-weather-center-consolidated-weather-reports-
1956/cc62066f-d7e4-4077-ac4e-d7cc09ceba33
Enum - 27 240 246 lines (4.55GB)
https://public.enigma.com/datasets/daily-weather-indications/d70070ae-5fce-4ccb-8b6f-c72f6ee5a75b
I turned off after one hour
Stream - 27 240 246 lines (4.55GB)
https://public.enigma.com/datasets/daily-weather-indications/d70070ae-5fce-4ccb-8b6f-c72f6ee5a75b
Flow - 27 240 246 lines (4.55GB)
https://public.enigma.com/datasets/daily-weather-indications/d70070ae-5fce-4ccb-8b6f-c72f6ee5a75b
Don’t forget, it’s not only
about time or memory!
Check this talk: ElixirConf 2019 - High Performance String Processing Scripts in
Elixir - Johanna Larsson
Video: https://youtu.be/Y83p_VsvRFA
Slides: https://files.jola.dev/talks/elixirconf-2019/
GitHub: https://github.com/joladev/high-performance-string-processing
Official Guides https://elixir-lang.org/getting-started/introduction.html
Elixir School https://elixirschool.com
Functional Web Development with Elixir, OTP, and Phoenix - Lance Halvorsen
The Little Elixir & OTP Guidebook - Benjamin Tan Wei Hao
Property-Based Testing with PropEr, Erlang, and Elixir - Fred Hebert
Example Data https://public.enigma.com/
Nice packages https://github.com/h4cc/awesome-elixir
Application Monitoring https://appsignal.com/
Materials
Questions
?????
oliver.kriska@payout.one
Skype: quatermain32
payout.one
Better way to pay

More Related Content

PDF
Online Talk - Elixir and Phoenix UNIZA OCT 2020
PDF
WebUp Feb 2017 - How (not) to get lost in bigger Ruby on Rails project.
PDF
How to generate JAR file dynamically compiling Java code in Kotlin
PDF
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
PDF
Build your first Monster APP
PDF
Avik_RailsTutorial
PPTX
Voxter - Building Value with Kazoo - KazooCon 2015
PPTX
KazooCon 2014 - WebRTC
Online Talk - Elixir and Phoenix UNIZA OCT 2020
WebUp Feb 2017 - How (not) to get lost in bigger Ruby on Rails project.
How to generate JAR file dynamically compiling Java code in Kotlin
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Build your first Monster APP
Avik_RailsTutorial
Voxter - Building Value with Kazoo - KazooCon 2015
KazooCon 2014 - WebRTC

What's hot (20)

PDF
Build Your Own Real-Time Web Service with Elixir Phoenix
PDF
PayPal Express in Ruby
PPTX
Introduction to Kamailio (TADSummit 2020 Asia)
PPTX
2600Hz - Least Cost Routing in the Cloud
PDF
Finagle @ SoundCloud
PDF
Building the ideal betting stack | London Erlang User Group presentation
PDF
Asynchronous Services – A promising future for OSGi - T Ward
PPT
A Ct Os Story
PDF
Finagle-Based Microservices at SoundCloud
PDF
Breathing new life into JSP with OSGi? Why!!! - R Auge
PDF
Ruby and Rails short motivation
PDF
Scaling and Orchestrating Microservices with OSGi - N Bartlett
PPTX
Ntu workshop : REST, PayPal APIs & Async
PDF
Continuous Automated Deployment with Apache ACE
PPTX
AWS API Framework Overview
PDF
Reasonable app development
PDF
Flex And Rails
PPTX
Intro cujojs
PDF
Apache Kafka Core Concepts
PDF
fmcsadmin 1.0.0
Build Your Own Real-Time Web Service with Elixir Phoenix
PayPal Express in Ruby
Introduction to Kamailio (TADSummit 2020 Asia)
2600Hz - Least Cost Routing in the Cloud
Finagle @ SoundCloud
Building the ideal betting stack | London Erlang User Group presentation
Asynchronous Services – A promising future for OSGi - T Ward
A Ct Os Story
Finagle-Based Microservices at SoundCloud
Breathing new life into JSP with OSGi? Why!!! - R Auge
Ruby and Rails short motivation
Scaling and Orchestrating Microservices with OSGi - N Bartlett
Ntu workshop : REST, PayPal APIs & Async
Continuous Automated Deployment with Apache ACE
AWS API Framework Overview
Reasonable app development
Flex And Rails
Intro cujojs
Apache Kafka Core Concepts
fmcsadmin 1.0.0
Ad

Similar to Elixir - After 2 years in action + code WebUp (20)

PDF
Why we choose Symfony2
PDF
Fluentd - RubyKansai 65
PDF
How to deploy & optimize eZ Publish
PDF
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
PPTX
Serverless meetup Auckland #6
PDF
ApacheCon 2021 - Apache NiFi Deep Dive 300
PDF
NTTs Journey with Openstack-final
PPTX
Why And When Should We Consider Stream Processing In Our Solutions Teqnation ...
PPTX
(java2days) Is the Future of Java Cloudy?
PPTX
apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...
PDF
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
PDF
JavaOne 2016: Kubernetes introduction for Java Developers
PDF
Kubernetes for Java Developers
PPTX
SignalR Intro + WPDev
PDF
REST - What's It All About? (SAP TechEd 2012, CD110)
PDF
An Introduction to Microservices
PPTX
SignalR Intro + WPDev integration @ Codetock
PDF
Sergio Seabra - Red Hat - OSL19
PPTX
Dev Ops for systems of record - Talk at Agile Australia 2015
PDF
Scalable full-stack development at the edge - Pascal Wolkotte - Codemotion Am...
Why we choose Symfony2
Fluentd - RubyKansai 65
How to deploy & optimize eZ Publish
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
Serverless meetup Auckland #6
ApacheCon 2021 - Apache NiFi Deep Dive 300
NTTs Journey with Openstack-final
Why And When Should We Consider Stream Processing In Our Solutions Teqnation ...
(java2days) Is the Future of Java Cloudy?
apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
JavaOne 2016: Kubernetes introduction for Java Developers
Kubernetes for Java Developers
SignalR Intro + WPDev
REST - What's It All About? (SAP TechEd 2012, CD110)
An Introduction to Microservices
SignalR Intro + WPDev integration @ Codetock
Sergio Seabra - Red Hat - OSL19
Dev Ops for systems of record - Talk at Agile Australia 2015
Scalable full-stack development at the edge - Pascal Wolkotte - Codemotion Am...
Ad

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Approach and Philosophy of On baking technology
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Digital-Transformation-Roadmap-for-Companies.pptx
Approach and Philosophy of On baking technology
“AI and Expert System Decision Support & Business Intelligence Systems”
Agricultural_Statistics_at_a_Glance_2022_0.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Dropbox Q2 2025 Financial Results & Investor Presentation
Programs and apps: productivity, graphics, security and other tools
Building Integrated photovoltaic BIPV_UPV.pdf
cuic standard and advanced reporting.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Empathic Computing: Creating Shared Understanding
Unlocking AI with Model Context Protocol (MCP)
Mobile App Security Testing_ A Comprehensive Guide.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Review of recent advances in non-invasive hemoglobin estimation
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
MYSQL Presentation for SQL database connectivity
Advanced methodologies resolving dimensionality complications for autism neur...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

Elixir - After 2 years in action + code WebUp