SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Concorrência,
baixa latência e
alta disponibilidade
HELLO! Guilherme Roveri
Arquiteto de Software – Grupo Netshoes
@gbroveri
2
Eder Magalhães
Arquiteto de Software – Grupo Netshoes
@edermag
Agenda ▫  Realidade de um e-commerce
▫  Alguns desafios
▫  Caso de uso: Inventário
▫  Arquitetura LMAX
▫  Solução Proposta
▫  Conclusões
▫  Referências
3
Realidade ▫  Negócio dinâmico
▫  Marketing digital agressivo
▫  Oferecer ótima experiência de compra
▫  Evolução contínua nos bastidores
▫  Sazonalidade: Blackfriday
4
Concorrência
Disputa frenética ao acesso a recursos
partilhados…
5
Latência
Intervalo de tempo entre a ação e o
efeito…
6
Disponibilidade
Percentual de tempo em que o sistema
está no ar…
7
Caso de
uso
COMO um provedor e-commerce
PRECISO de um mecanismo robusto
para gerenciar o inventário
PARA evitar perdas
E garantir satisfação dos clientes
8
LMAX ▫  Plataforma para comercialização de
produtos do mercado financeiro para
varejo
▫  Eliminar concorrência
▫  Regras de negócio usando memória
e event sourcing
▫  Alto throughput c/ baixa latência
▫  Ex: 6 milhões de transações por seg
9
LMAX Composto por 3 segmentos:
10
Business
Logic
Processor
▫  Fluxo de negócio
▫  Single thread
▫  Sem acesso a banco de dados
▫  Sem controle transacional
▫  Manipulação em memória
11
Arquitetura
12
Fila + NoSQLProposta de arquitetura c/ Fila e NoSQL p/
solução de controle de inventário
13
Inventário ▫  Operações crédito e débito;
▫  Particionamento de Produtos;
▫  Single thread p/ Consumidor;
14
Inventário
15
Business
Debit / Credit
NoSQL Persistence
REST Endpoint
Message Broker
Inventário
16
Business
Debit / Credit
NoSQL Persistence
Request
REST Endpoint
Message Broker
Inventário
17
Business
Debit / Credit
NoSQL Persistence
Request
Partition
REST Endpoint
Message Broker
Request Queues
Inventário
18
Business
Debit / Credit
NoSQL Persistence
Consumer
Partition
Request
Partition
REST Endpoint
Message Broker
Request Queues
Inventário
19
Business
Debit / Credit
NoSQL Persistence
Consumer
Partition
Request
Partition
REST Endpoint
Message Broker
Request Queues
Inventário
20
Business
Debit / Credit
NoSQL Persistence
Consumer
Partition
Partition
Request
Partition
REST Endpoint
Message Broker
Request Queues
Inventário
21
Business
Debit / Credit
Reply Queues
Consumer
Partition
Partition
NoSQL Persistence
Request
Partition
REST Endpoint
Message Broker
Request Queues
Inventário
22
Request
Business
Debit / Credit
Response
Reply Queues
Partition
Consumer
Partition
Request Queues
Message Broker
Partition
NoSQL Persistence
REST Endpoint
Inventário
Tecnologias
23
Request
Business
Debit / Credit
Response
Reply Queues
Partition
Consumer
Partition
Partition
ü  Spring Java;
ü  Spring Cloud;
ü  RabbitMQ
ü  Cassandra
REST Endpoint
Message Broker
NoSQL Persistence
Request Queues
Conclusão ▫  O drive é o negócio
▫  Experimentar tecnologias
▫  Clean code: testes + testes + testes
24
Referências ▫  https://www.infoq.com/presentations/LMAX
▫  https://github.com/LMAX-Exchange
▫  http://martinfowler.com/articles/lmax.html
▫  http://www.datastax.com/dev/blog/scalable-
inventory
▫  http://henryr.github.io/cap-faq/
25
26
Obrigado Questões?
▫  gbroveri@gmail.com
▫  edermag@gmail.com

Mais conteúdo relacionado

Destaque

Java e uma visão sobre PaaS
Java e uma visão sobre PaaSJava e uma visão sobre PaaS
Java e uma visão sobre PaaSEder Magalhães
 
Construindo uma arquitetura com REST, HTML 5 e JSF 2
Construindo uma arquitetura com REST, HTML 5 e JSF 2Construindo uma arquitetura com REST, HTML 5 e JSF 2
Construindo uma arquitetura com REST, HTML 5 e JSF 2Raphael Adrien
 
JSF 2 Components JustJava2011
JSF 2 Components JustJava2011JSF 2 Components JustJava2011
JSF 2 Components JustJava2011Eder Magalhães
 
JSF2 c/ PrimeFaces, RichFaces e ICEfaces
JSF2 c/ PrimeFaces, RichFaces e ICEfacesJSF2 c/ PrimeFaces, RichFaces e ICEfaces
JSF2 c/ PrimeFaces, RichFaces e ICEfacesEder Magalhães
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com PrimefacesFabio Noth
 
Jsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenJsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenLeandro Costa
 

Destaque (8)

REST com JSF 2 e HTML 5
REST com JSF 2 e HTML 5REST com JSF 2 e HTML 5
REST com JSF 2 e HTML 5
 
Java e uma visão sobre PaaS
Java e uma visão sobre PaaSJava e uma visão sobre PaaS
Java e uma visão sobre PaaS
 
Construindo uma arquitetura com REST, HTML 5 e JSF 2
Construindo uma arquitetura com REST, HTML 5 e JSF 2Construindo uma arquitetura com REST, HTML 5 e JSF 2
Construindo uma arquitetura com REST, HTML 5 e JSF 2
 
JSF 2 Components JustJava2011
JSF 2 Components JustJava2011JSF 2 Components JustJava2011
JSF 2 Components JustJava2011
 
Prime Faces
Prime FacesPrime Faces
Prime Faces
 
JSF2 c/ PrimeFaces, RichFaces e ICEfaces
JSF2 c/ PrimeFaces, RichFaces e ICEfacesJSF2 c/ PrimeFaces, RichFaces e ICEfaces
JSF2 c/ PrimeFaces, RichFaces e ICEfaces
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com Primefaces
 
Jsf com hibernate, spring security e maven
Jsf com hibernate, spring security e mavenJsf com hibernate, spring security e maven
Jsf com hibernate, spring security e maven
 

Semelhante a Concorrência, baixa latência e alta disponibilidade com arquitetura inspirada em LMAX

[Workshops RoadShow ECBR - Edição Recife 2019] Cases e diferenciais da Plataf...
[Workshops RoadShow ECBR - Edição Recife 2019] Cases e diferenciais da Plataf...[Workshops RoadShow ECBR - Edição Recife 2019] Cases e diferenciais da Plataf...
[Workshops RoadShow ECBR - Edição Recife 2019] Cases e diferenciais da Plataf...E-Commerce Brasil
 
Desenvolvimento Ágil e Pontos de Função gerenciando o projeto de maneira ági...
Desenvolvimento Ágil e Pontos de Função  gerenciando o projeto de maneira ági...Desenvolvimento Ágil e Pontos de Função  gerenciando o projeto de maneira ági...
Desenvolvimento Ágil e Pontos de Função gerenciando o projeto de maneira ági...Dextra
 
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...Vanessa Campos
 
Blockchain uma nova realidade para o mundo dos Negócios
Blockchain uma nova realidade para o mundo dos NegóciosBlockchain uma nova realidade para o mundo dos Negócios
Blockchain uma nova realidade para o mundo dos NegóciosinovaDay .
 
Integração facilitada entre ERPs e CRM Sugar - Magic Sem Segredos - S01E10
Integração facilitada entre ERPs e CRM Sugar - Magic Sem Segredos - S01E10Integração facilitada entre ERPs e CRM Sugar - Magic Sem Segredos - S01E10
Integração facilitada entre ERPs e CRM Sugar - Magic Sem Segredos - S01E10Magic Software Brasil
 
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital Jorge Biesczad Jr.
 
Apresentação - Software
Apresentação - SoftwareApresentação - Software
Apresentação - Softwarematheusvetor
 
[Think E-Commerce| Edição Campinas 2020] Desafios (e soluções) para participa...
[Think E-Commerce| Edição Campinas 2020] Desafios (e soluções) para participa...[Think E-Commerce| Edição Campinas 2020] Desafios (e soluções) para participa...
[Think E-Commerce| Edição Campinas 2020] Desafios (e soluções) para participa...E-Commerce Brasil
 
B8one - Renato Avelar - E commerce business workshop.pptx
B8one - Renato Avelar - E commerce business workshop.pptxB8one - Renato Avelar - E commerce business workshop.pptx
B8one - Renato Avelar - E commerce business workshop.pptxRenato Avelar
 
Produtos oferecidos pelo Allegro BG
Produtos oferecidos pelo Allegro BGProdutos oferecidos pelo Allegro BG
Produtos oferecidos pelo Allegro BGgueste5eb0b
 
[Workshops RoadShow ECBR - Edição Curitiba 2019] Cases e diferenciais da Plat...
[Workshops RoadShow ECBR - Edição Curitiba 2019] Cases e diferenciais da Plat...[Workshops RoadShow ECBR - Edição Curitiba 2019] Cases e diferenciais da Plat...
[Workshops RoadShow ECBR - Edição Curitiba 2019] Cases e diferenciais da Plat...E-Commerce Brasil
 
Synaptic Advisory Partners Brazil
Synaptic Advisory Partners BrazilSynaptic Advisory Partners Brazil
Synaptic Advisory Partners Braziljorgejardimneto
 
Textile CRM Strategy
Textile CRM StrategyTextile CRM Strategy
Textile CRM Strategykrajnc_alves
 
e-book marketplace com Kafka e GCP
e-book marketplace com Kafka e GCPe-book marketplace com Kafka e GCP
e-book marketplace com Kafka e GCPTechrom Tecnologia
 
RPA - Portfólio de Serviços iProcess
RPA - Portfólio de Serviços iProcessRPA - Portfólio de Serviços iProcess
RPA - Portfólio de Serviços iProcessEduardo Britto
 

Semelhante a Concorrência, baixa latência e alta disponibilidade com arquitetura inspirada em LMAX (20)

[Workshops RoadShow ECBR - Edição Recife 2019] Cases e diferenciais da Plataf...
[Workshops RoadShow ECBR - Edição Recife 2019] Cases e diferenciais da Plataf...[Workshops RoadShow ECBR - Edição Recife 2019] Cases e diferenciais da Plataf...
[Workshops RoadShow ECBR - Edição Recife 2019] Cases e diferenciais da Plataf...
 
Plataformas de E-commerce - Como escolher a ideal - Aula Curso ESPM
Plataformas de E-commerce - Como escolher a ideal - Aula Curso ESPMPlataformas de E-commerce - Como escolher a ideal - Aula Curso ESPM
Plataformas de E-commerce - Como escolher a ideal - Aula Curso ESPM
 
Desenvolvimento Ágil e Pontos de Função gerenciando o projeto de maneira ági...
Desenvolvimento Ágil e Pontos de Função  gerenciando o projeto de maneira ági...Desenvolvimento Ágil e Pontos de Função  gerenciando o projeto de maneira ági...
Desenvolvimento Ágil e Pontos de Função gerenciando o projeto de maneira ági...
 
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...
 
Blockchain uma nova realidade para o mundo dos Negócios
Blockchain uma nova realidade para o mundo dos NegóciosBlockchain uma nova realidade para o mundo dos Negócios
Blockchain uma nova realidade para o mundo dos Negócios
 
Integração facilitada entre ERPs e CRM Sugar - Magic Sem Segredos - S01E10
Integração facilitada entre ERPs e CRM Sugar - Magic Sem Segredos - S01E10Integração facilitada entre ERPs e CRM Sugar - Magic Sem Segredos - S01E10
Integração facilitada entre ERPs e CRM Sugar - Magic Sem Segredos - S01E10
 
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital
 
Apresentação - Software
Apresentação - SoftwareApresentação - Software
Apresentação - Software
 
[Think E-Commerce| Edição Campinas 2020] Desafios (e soluções) para participa...
[Think E-Commerce| Edição Campinas 2020] Desafios (e soluções) para participa...[Think E-Commerce| Edição Campinas 2020] Desafios (e soluções) para participa...
[Think E-Commerce| Edição Campinas 2020] Desafios (e soluções) para participa...
 
B8one - Renato Avelar - E commerce business workshop.pptx
B8one - Renato Avelar - E commerce business workshop.pptxB8one - Renato Avelar - E commerce business workshop.pptx
B8one - Renato Avelar - E commerce business workshop.pptx
 
Produtos oferecidos pelo Allegro BG
Produtos oferecidos pelo Allegro BGProdutos oferecidos pelo Allegro BG
Produtos oferecidos pelo Allegro BG
 
Produtos Allegro BG
Produtos Allegro BGProdutos Allegro BG
Produtos Allegro BG
 
[Workshops RoadShow ECBR - Edição Curitiba 2019] Cases e diferenciais da Plat...
[Workshops RoadShow ECBR - Edição Curitiba 2019] Cases e diferenciais da Plat...[Workshops RoadShow ECBR - Edição Curitiba 2019] Cases e diferenciais da Plat...
[Workshops RoadShow ECBR - Edição Curitiba 2019] Cases e diferenciais da Plat...
 
Synaptic Advisory Partners Brazil
Synaptic Advisory Partners BrazilSynaptic Advisory Partners Brazil
Synaptic Advisory Partners Brazil
 
Temas estudo
Temas estudoTemas estudo
Temas estudo
 
Textile CRM Strategy
Textile CRM StrategyTextile CRM Strategy
Textile CRM Strategy
 
e-book marketplace com Kafka e GCP
e-book marketplace com Kafka e GCPe-book marketplace com Kafka e GCP
e-book marketplace com Kafka e GCP
 
Ti nas organizações e wms
Ti nas organizações e wmsTi nas organizações e wms
Ti nas organizações e wms
 
Ti nas organizações e wms
Ti nas organizações e wmsTi nas organizações e wms
Ti nas organizações e wms
 
RPA - Portfólio de Serviços iProcess
RPA - Portfólio de Serviços iProcessRPA - Portfólio de Serviços iProcess
RPA - Portfólio de Serviços iProcess
 

Mais de Eder Magalhães

Introdução a Plataforma Java EE
Introdução a Plataforma Java EEIntrodução a Plataforma Java EE
Introdução a Plataforma Java EEEder Magalhães
 
As modificações na Linguagem: Java 7 e Java 8
As modificações na Linguagem: Java 7 e Java 8As modificações na Linguagem: Java 7 e Java 8
As modificações na Linguagem: Java 7 e Java 8Eder Magalhães
 
Desenvolvimento Produtivo com Spring Roo
Desenvolvimento Produtivo com Spring RooDesenvolvimento Produtivo com Spring Roo
Desenvolvimento Produtivo com Spring RooEder Magalhães
 
Futuro da linguagem e plataforma: Java 7 e 8
Futuro da linguagem e plataforma: Java 7 e 8Futuro da linguagem e plataforma: Java 7 e 8
Futuro da linguagem e plataforma: Java 7 e 8Eder Magalhães
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineEder Magalhães
 
Richfaces 4 - Desenvolvimento JSF mais rico
Richfaces 4 - Desenvolvimento JSF mais ricoRichfaces 4 - Desenvolvimento JSF mais rico
Richfaces 4 - Desenvolvimento JSF mais ricoEder Magalhães
 
Introducao ao Spring Web MVC
Introducao ao Spring Web MVCIntroducao ao Spring Web MVC
Introducao ao Spring Web MVCEder Magalhães
 
JavaFX: Abordagem Prática
JavaFX: Abordagem PráticaJavaFX: Abordagem Prática
JavaFX: Abordagem PráticaEder Magalhães
 
Desenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e SpringDesenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e SpringEder Magalhães
 
Profissao java gwt e javafx
Profissao java gwt e javafxProfissao java gwt e javafx
Profissao java gwt e javafxEder Magalhães
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010Eder Magalhães
 

Mais de Eder Magalhães (18)

Cvc programacao reativa
Cvc programacao reativaCvc programacao reativa
Cvc programacao reativa
 
Introdução a Plataforma Java EE
Introdução a Plataforma Java EEIntrodução a Plataforma Java EE
Introdução a Plataforma Java EE
 
As modificações na Linguagem: Java 7 e Java 8
As modificações na Linguagem: Java 7 e Java 8As modificações na Linguagem: Java 7 e Java 8
As modificações na Linguagem: Java 7 e Java 8
 
Desenvolvimento Produtivo com Spring Roo
Desenvolvimento Produtivo com Spring RooDesenvolvimento Produtivo com Spring Roo
Desenvolvimento Produtivo com Spring Roo
 
Futuro da linguagem e plataforma: Java 7 e 8
Futuro da linguagem e plataforma: Java 7 e 8Futuro da linguagem e plataforma: Java 7 e 8
Futuro da linguagem e plataforma: Java 7 e 8
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App Engine
 
Java7 tdc2011
Java7 tdc2011Java7 tdc2011
Java7 tdc2011
 
Richfaces 4 - Desenvolvimento JSF mais rico
Richfaces 4 - Desenvolvimento JSF mais ricoRichfaces 4 - Desenvolvimento JSF mais rico
Richfaces 4 - Desenvolvimento JSF mais rico
 
Introducao Spring ROO
Introducao Spring ROOIntroducao Spring ROO
Introducao Spring ROO
 
Introducao Google GO
Introducao Google GOIntroducao Google GO
Introducao Google GO
 
Introducao ao Spring Web MVC
Introducao ao Spring Web MVCIntroducao ao Spring Web MVC
Introducao ao Spring Web MVC
 
JavaFX: Abordagem Prática
JavaFX: Abordagem PráticaJavaFX: Abordagem Prática
JavaFX: Abordagem Prática
 
Desenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e SpringDesenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e Spring
 
Profissao java gwt e javafx
Profissao java gwt e javafxProfissao java gwt e javafx
Profissao java gwt e javafx
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010
 
Android SestInfo 2010
Android SestInfo 2010Android SestInfo 2010
Android SestInfo 2010
 
JavaFX SestInfo 2010
JavaFX SestInfo 2010JavaFX SestInfo 2010
JavaFX SestInfo 2010
 
Gwt-Guice_TDC2009
Gwt-Guice_TDC2009Gwt-Guice_TDC2009
Gwt-Guice_TDC2009
 

Concorrência, baixa latência e alta disponibilidade com arquitetura inspirada em LMAX