Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Concorrencia, baixa Latência e alta disponibilidade

220 views

Published on

Palestra da DevCommerce Conference 2016, tópicos relacionados a arquitetura de software

Published in: Software
  • Be the first to comment

  • Be the first to like this

Concorrencia, baixa Latência e alta disponibilidade

  1. 1. Concorrência, baixa latência e alta disponibilidade
  2. 2. HELLO! Guilherme Roveri Arquiteto de Software – Grupo Netshoes @gbroveri 2 Eder Magalhães Arquiteto de Software – Grupo Netshoes @edermag
  3. 3. Agenda ▫  Realidade de um e-commerce ▫  Alguns desafios ▫  Caso de uso: Inventário ▫  Arquitetura LMAX ▫  Solução Proposta ▫  Conclusões ▫  Referências 3
  4. 4. Realidade ▫  Negócio dinâmico ▫  Marketing digital agressivo ▫  Oferecer ótima experiência de compra ▫  Evolução contínua nos bastidores ▫  Sazonalidade: Blackfriday 4
  5. 5. Concorrência Disputa frenética ao acesso a recursos partilhados… 5
  6. 6. Latência Intervalo de tempo entre a ação e o efeito… 6
  7. 7. Disponibilidade Percentual de tempo em que o sistema está no ar… 7
  8. 8. 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
  9. 9. 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
  10. 10. LMAX Composto por 3 segmentos: 10
  11. 11. Business Logic Processor ▫  Fluxo de negócio ▫  Single thread ▫  Sem acesso a banco de dados ▫  Sem controle transacional ▫  Manipulação em memória 11
  12. 12. Arquitetura 12
  13. 13. Fila + NoSQLProposta de arquitetura c/ Fila e NoSQL p/ solução de controle de inventário 13
  14. 14. Inventário ▫  Operações crédito e débito; ▫  Particionamento de Produtos; ▫  Single thread p/ Consumidor; 14
  15. 15. Inventário 15 Business Debit / Credit NoSQL Persistence REST Endpoint Message Broker
  16. 16. Inventário 16 Business Debit / Credit NoSQL Persistence Request REST Endpoint Message Broker
  17. 17. Inventário 17 Business Debit / Credit NoSQL Persistence Request Partition REST Endpoint Message Broker Request Queues
  18. 18. Inventário 18 Business Debit / Credit NoSQL Persistence Consumer Partition Request Partition REST Endpoint Message Broker Request Queues
  19. 19. Inventário 19 Business Debit / Credit NoSQL Persistence Consumer Partition Request Partition REST Endpoint Message Broker Request Queues
  20. 20. Inventário 20 Business Debit / Credit NoSQL Persistence Consumer Partition Partition Request Partition REST Endpoint Message Broker Request Queues
  21. 21. Inventário 21 Business Debit / Credit Reply Queues Consumer Partition Partition NoSQL Persistence Request Partition REST Endpoint Message Broker Request Queues
  22. 22. Inventário 22 Request Business Debit / Credit Response Reply Queues Partition Consumer Partition Request Queues Message Broker Partition NoSQL Persistence REST Endpoint
  23. 23. 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
  24. 24. Conclusão ▫  O drive é o negócio ▫  Experimentar tecnologias ▫  Clean code: testes + testes + testes 24
  25. 25. 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. 26. 26 Obrigado Questões? ▫  gbroveri@gmail.com ▫  edermag@gmail.com

×