SlideShare une entreprise Scribd logo
1  sur  112
Télécharger pour lire hors ligne
ELIXIRTolerância a Falhas para Adultos
@akitaonrails
ELIXIRTolerância a Falhas para Adultos
@akitaonrails
@akitaonrails
FIM DA LEI DE
MOORE
THREADS!
(NÃO USE)
THREADS!
(NÃO USE)
EVENTOS!
(NÃO USE)
EVENTOS!
(NÃO USE)
BAIXA LATÊNCIA
CO-ROTINAS
(SUBROTINAS, FIBRAS)
CASOS REAIS
“Since cut-over of the first nodes in British Telecom's network
in January 2002 only one minor fault has occurred, resulting in
99.9999999% availability.”
“The network performance has been so reliable that there is
almost a risk that our field engineers do not learn maintenance
skills.”
Bernt Nilsson - director of Ericsson’s Next Generation Systems program
BÁSICO …
PEER-TO-PEER
NETWORKING
[a,	b,	c]	=	[a,	2,	3]	
{:ok,	message}	=	{:ok,	“world"}	
{:ok,	[hello:	message]}	=	{:ok,	[hello:	“world”]}	
[hello:	message,	world:	message2]	
#=>	[{:hello,	message},	{:world,	message2}]
[a,	b,	c]	=	[a,	2,	3]	
{:ok,	message}	=	{:ok,	“world"}	
{:ok,	[hello:	message]}	=	{:ok,	[hello:	“world”]}	
[hello:	message,	world:	message2]	
#=>	[{:hello,	message},	{:world,	message2}]
[a,	b,	c]	=	[a,	2,	3]	
{:ok,	message}	=	{:ok,	“world"}	
{:ok,	[hello:	message]}	=	{:ok,	[hello:	“world”]}	
[hello:	message,	world:	message2]	
#=>	[{:hello,	message},	{:world,	message2}]
[a,	b,	c]	=	[a,	2,	3]	
{:ok,	message}	=	{:ok,	“world"}	
{:ok,	[hello:	message]}	=	{:ok,	[hello:	“world”]}	
[hello:	message,	world:	message2]	
#=>	[{:hello,	message},	{:world,	message2}]
PATTERN
MATCHING
CALL BY
PATTERN
Spawn, Send,
Receive
"PID"
(Process ID)
PROCESSOS
(GREEN THREADS)
List/Kill
ASYNCHRONOUS
EXCEPTIONS
ASYNCHRONOUS
EXCEPTIONS
Link, Flag
ACTORS!
GenServer
[h,	t]	=	[1,	2,	3]	
#=>	h	=	1,	t	=	[2,3]	
Process.list	|>	Enum.reverse	
#=>	Enum.reverse(Process.list())
[h,	t]	=	[1,	2,	3]	
#=>	h	=	1,	t	=	[2,3]	
Process.list	|>	Enum.reverse	
#=>	Enum.reverse(Process.list())
SUPERVISOR TREE
(supervisor - supervisees/workers)
OTP
(Open Telecom Platform)
MICRO
“YOCTO”
SERVICES
(Micro > Nano > Pico > Femto > Atto > Zepto > Yocto)
MICRO
“YOCTO”
SERVICES
(Micro > Nano > Pico > Femto > Atto > Zepto > Yocto)
MICRO
“YOCTO”
SERVICES
(Micro > Nano > Pico > Femto > Atto > Zepto > Yocto)
• Keywords, Maps, Comprehensions
• Keywords, Maps, Comprehensions
• Documentação testável/executável
• Keywords, Maps, Comprehensions
• Documentação testável/executável
• TypeSpecs, Behaviors
• Keywords, Maps, Comprehensions
• Documentação testável/executável
• TypeSpecs, Behaviors
• Agents, Tasks, GenEvent
• Keywords, Maps, Comprehensions
• Documentação testável/executável
• TypeSpecs, Behaviors
• Agents, Tasks, GenEvent
• Macros, Sigils
• Keywords, Maps, Comprehensions
• Documentação testável/executável
• TypeSpecs, Behaviors
• Agents, Tasks, GenEvent
• Macros, Sigils
• Armazenamento: ETS, DETS, Mnesia
Javascript -
shared mutable global state
Blocking Event Loop
Rust -
Low Level
Async in progress
No coroutines
Go
Suture
(OTP Clone)
goroutines sem ID
shared mutable state
static signatures
Scala
Akka
(OTP Clone)
shared mutable state
static signatures
Clojure Pulsar / Quasar
Almost Erlang-like Process
JVM limitations
“quase” …
Erlang:
PRONTO!
(30 anos)
APRENDENDO
OBRIGADO!
www.akitaonrails.com/elixir
@akitaonrails
OBRIGADO!
www.akitaonrails.com/elixir
@akitaonrails

Contenu connexe

En vedette

Bottleneck in Elixir Application - Alexey Osipenko
 Bottleneck in Elixir Application - Alexey Osipenko  Bottleneck in Elixir Application - Alexey Osipenko
Bottleneck in Elixir Application - Alexey Osipenko
Elixir Club
 

En vedette (20)

High Performance Erlang - Pitfalls and Solutions
High Performance Erlang - Pitfalls and SolutionsHigh Performance Erlang - Pitfalls and Solutions
High Performance Erlang - Pitfalls and Solutions
 
Elixir - Easy fun for busy developers @ Devoxx 2016
Elixir - Easy fun for busy developers @ Devoxx 2016Elixir - Easy fun for busy developers @ Devoxx 2016
Elixir - Easy fun for busy developers @ Devoxx 2016
 
Erlang Supervision Trees
Erlang Supervision TreesErlang Supervision Trees
Erlang Supervision Trees
 
The Erlang Programming Language
The Erlang Programming LanguageThe Erlang Programming Language
The Erlang Programming Language
 
Erlang containers
Erlang containersErlang containers
Erlang containers
 
FunctionalConf '16 Robert Virding Erlang Ecosystem
FunctionalConf '16 Robert Virding Erlang EcosystemFunctionalConf '16 Robert Virding Erlang Ecosystem
FunctionalConf '16 Robert Virding Erlang Ecosystem
 
Elixir intro
Elixir introElixir intro
Elixir intro
 
Repeating History...On Purpose...with Elixir
Repeating History...On Purpose...with ElixirRepeating History...On Purpose...with Elixir
Repeating History...On Purpose...with Elixir
 
RabbitMQ: Message queuing that works
RabbitMQ: Message queuing that worksRabbitMQ: Message queuing that works
RabbitMQ: Message queuing that works
 
Erlang и n2o. Web-разработка без JavaScript
Erlang и n2o. Web-разработка без JavaScriptErlang и n2o. Web-разработка без JavaScript
Erlang и n2o. Web-разработка без JavaScript
 
Rethink programming: a functional approach
Rethink programming: a functional approachRethink programming: a functional approach
Rethink programming: a functional approach
 
Erlang and Elixir
Erlang and ElixirErlang and Elixir
Erlang and Elixir
 
SE2016 Exotic Valerii Vasylkov "Erlang. Measurements and benefits"
SE2016 Exotic Valerii Vasylkov "Erlang. Measurements and benefits"SE2016 Exotic Valerii Vasylkov "Erlang. Measurements and benefits"
SE2016 Exotic Valerii Vasylkov "Erlang. Measurements and benefits"
 
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
 
Erlang sem enrolação
Erlang sem enrolaçãoErlang sem enrolação
Erlang sem enrolação
 
Bottleneck in Elixir Application - Alexey Osipenko
 Bottleneck in Elixir Application - Alexey Osipenko  Bottleneck in Elixir Application - Alexey Osipenko
Bottleneck in Elixir Application - Alexey Osipenko
 
Introduction to Erlang Part 1
Introduction to Erlang Part 1Introduction to Erlang Part 1
Introduction to Erlang Part 1
 
The Zen Of Erlang
The Zen Of ErlangThe Zen Of Erlang
The Zen Of Erlang
 
Introduction to Erlang Part 2
Introduction to Erlang Part 2Introduction to Erlang Part 2
Introduction to Erlang Part 2
 
Intro to elixir and phoenix
Intro to elixir and phoenixIntro to elixir and phoenix
Intro to elixir and phoenix
 

Similaire à QCON SP 2016 - Elixir: Tolerância a Falhas para Adultos

BMS IMPIANTI S.r.l. & Ecosystem
BMS IMPIANTI S.r.l. & EcosystemBMS IMPIANTI S.r.l. & Ecosystem
BMS IMPIANTI S.r.l. & Ecosystem
Stefano Brivio
 
Axon\' Cable 2011 Linkedin
Axon\' Cable 2011   LinkedinAxon\' Cable 2011   Linkedin
Axon\' Cable 2011 Linkedin
marcpawson
 
Selim Kunt Cv 20.05.2009
Selim Kunt Cv 20.05.2009Selim Kunt Cv 20.05.2009
Selim Kunt Cv 20.05.2009
selimkunt
 
On-chip ESD protection for Silicon Photonics
On-chip ESD protection for Silicon PhotonicsOn-chip ESD protection for Silicon Photonics
On-chip ESD protection for Silicon Photonics
Sofics
 

Similaire à QCON SP 2016 - Elixir: Tolerância a Falhas para Adultos (20)

Elixir: Tolerância a Falhas para Adultos - OneDay Baixada Santista
Elixir: Tolerância a Falhas para Adultos - OneDay Baixada SantistaElixir: Tolerância a Falhas para Adultos - OneDay Baixada Santista
Elixir: Tolerância a Falhas para Adultos - OneDay Baixada Santista
 
Kemrock Case Study
Kemrock Case StudyKemrock Case Study
Kemrock Case Study
 
BMS IMPIANTI S.r.l. & Ecosystem
BMS IMPIANTI S.r.l. & EcosystemBMS IMPIANTI S.r.l. & Ecosystem
BMS IMPIANTI S.r.l. & Ecosystem
 
Axon\' Cable 2011 Linkedin
Axon\' Cable 2011   LinkedinAxon\' Cable 2011   Linkedin
Axon\' Cable 2011 Linkedin
 
A simple slide on submarine cable-communication
A simple slide on submarine cable-communicationA simple slide on submarine cable-communication
A simple slide on submarine cable-communication
 
CHOKI
CHOKICHOKI
CHOKI
 
Sgcp12 russell haggar-xsilon-for pd-fing for cir website
Sgcp12 russell haggar-xsilon-for pd-fing for cir websiteSgcp12 russell haggar-xsilon-for pd-fing for cir website
Sgcp12 russell haggar-xsilon-for pd-fing for cir website
 
case study 12
case study 12case study 12
case study 12
 
STMicroelectronics MEMS Microphone -- Reverse Engineering Analysis
STMicroelectronics MEMS Microphone -- Reverse Engineering AnalysisSTMicroelectronics MEMS Microphone -- Reverse Engineering Analysis
STMicroelectronics MEMS Microphone -- Reverse Engineering Analysis
 
ALABI Kola Samuel
ALABI Kola SamuelALABI Kola Samuel
ALABI Kola Samuel
 
Fiber applications
Fiber applicationsFiber applications
Fiber applications
 
Total Turnkey DAS: A Path to Ensure Rapid Business Growth and Career Success
Total Turnkey DAS: A Path to Ensure Rapid Business Growth and Career SuccessTotal Turnkey DAS: A Path to Ensure Rapid Business Growth and Career Success
Total Turnkey DAS: A Path to Ensure Rapid Business Growth and Career Success
 
BICSI DAS Presentation
BICSI DAS PresentationBICSI DAS Presentation
BICSI DAS Presentation
 
Selim Kunt Cv 20.05.2009
Selim Kunt Cv 20.05.2009Selim Kunt Cv 20.05.2009
Selim Kunt Cv 20.05.2009
 
Sharing is caring: Real-life shared infrastructure experience
Sharing is caring: Real-life shared infrastructure experienceSharing is caring: Real-life shared infrastructure experience
Sharing is caring: Real-life shared infrastructure experience
 
Eur 605-en
Eur 605-enEur 605-en
Eur 605-en
 
jack george cv
jack george cv jack george cv
jack george cv
 
EMC for Networks - Peter Thomas, Control Specialists and Jos Knockaert, UGent
EMC for Networks - Peter Thomas, Control Specialists and Jos Knockaert, UGentEMC for Networks - Peter Thomas, Control Specialists and Jos Knockaert, UGent
EMC for Networks - Peter Thomas, Control Specialists and Jos Knockaert, UGent
 
On-chip ESD protection for Silicon Photonics
On-chip ESD protection for Silicon PhotonicsOn-chip ESD protection for Silicon Photonics
On-chip ESD protection for Silicon Photonics
 
ifti cv (1)
ifti cv (1)ifti cv (1)
ifti cv (1)
 

Plus de Fabio Akita

Plus de Fabio Akita (20)

Devconf 2019 - São Carlos
Devconf 2019 - São CarlosDevconf 2019 - São Carlos
Devconf 2019 - São Carlos
 
Meetup Nerdzão - English Talk about Languages
Meetup Nerdzão  - English Talk about LanguagesMeetup Nerdzão  - English Talk about Languages
Meetup Nerdzão - English Talk about Languages
 
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
 
Desmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SPDesmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SP
 
Desmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter GoianiaDesmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter Goiania
 
Blockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7MastersBlockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7Masters
 
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
Elixir  -Tolerância a Falhas para Adultos - GDG CampinasElixir  -Tolerância a Falhas para Adultos - GDG Campinas
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
 
Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017
 
30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to Ruby30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to Ruby
 
Uma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TIUma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TI
 
THE CONF - Opening Keynote
THE CONF - Opening KeynoteTHE CONF - Opening Keynote
THE CONF - Opening Keynote
 
A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017
 
Desmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - APDesmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - AP
 
A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017
 
A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017
 
A Journey through New Languages - Locaweb Tech Day
A Journey through New Languages - Locaweb Tech DayA Journey through New Languages - Locaweb Tech Day
A Journey through New Languages - Locaweb Tech Day
 
A Journey through new Languages - Intercon 2016
A Journey through new Languages - Intercon 2016A Journey through new Languages - Intercon 2016
A Journey through new Languages - Intercon 2016
 
Premature Optimization 2.0 - Intercon 2016
Premature Optimization 2.0 - Intercon 2016Premature Optimization 2.0 - Intercon 2016
Premature Optimization 2.0 - Intercon 2016
 
Conexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização PrematuraConexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização Prematura
 
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilThe Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

QCON SP 2016 - Elixir: Tolerância a Falhas para Adultos