Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Event-Driven Microservices Architecture: Até qu...

Event-Driven Microservices Architecture: Até que ponto é sustentável?

Ao longo dos anos a arquitetura distribuída vem sendo amplamente adotada, por prover inúmeras vantagens como: manutenção, heterogeneidade tecnológica, escalabilidade, desacoplamento, etc.

Nesse sentido, a arquitetura orientada a eventos vem sendo amplamente adotada devido suas inúmeras vantagens, como o baixo acoplado, porém conforme sua arquitetura vai evoluindo em conjunto com os novos casos de uso, vai alimentando uma dor nessa arquitetura exponencialmente.

Nesta palestra, iremos abordar como lidamos com essa dor latente de adicionar novos fluxos de processos e suas possíveis soluções mesclando estilos arquiteturais.

Luram Archanjo

June 14, 2023
Tweet

More Decks by Luram Archanjo

Other Decks in Technology

Transcript

  1. Quem sou eu? Luram Archanjo Software Expert @ Mercado Livre

    MBA em Projetos Java Entusiasta em Java e Microsserviços
  2. Microsserviços - Strangler Pattern Monolith Process A Process B Process

    C Linha do tempo Process D Process E Process F Process G Monolith Process B Process C Process D Process E Process F Process G Monolith Process C Process D Process E Process F Process G
  3. Microsserviços - Event-Driven Architecture (Broker Topology) Monolith Process Process Process

    Process Process Message Broker Microsserviços (Process A) Microsserviços (Process B) Domain Event Domain Event Domain Event
  4. Microsserviços - Nossa dor! Q: Nova funcionalidade! Após confirmação do

    envio, vamos mandar cupons de desconto! R: Fácil! Somente ouvir o evento de confirmação de Shipment Service!
  5. Eis que o negócio começa a ter muuuitos novos fluxos

    e sub-fluxos! Nossa arquitetura não escalou :/
  6. Microsserviços - Nossa dor! Q: Nova funcionalidade! Após confirmação do

    envio, vamos bla, bla, bla! R: Fácil! Somente ouvir o evento de confirmação de Shipment Service!
  7. Microsserviços - Nossa dor! Message Broker Domain Event Shipment Coupon

    Microserviço Microserviço Microserviço Microserviço Microserviço Microserviço Microserviço Microserviço Microserviço
  8. Você ganha tempo a curto prazo usando coreografia, porém a

    longo prazo lhe rende uma "dívida técnica"!
  9. Microsserviços - Nossa dor! Q: Quando for uma confirmação de

    um envio do fluxo X, Y e Z não podemos enviar cupom, bla, bla, bla! R: Eita vai demorar! Vamos ter que alterar vários serviços!
  10. Microsserviços - Nossa dor! Message Broker Domain Event Shipment Coupon

    Microserviço Microserviço Microserviço Microserviço Microserviço IF true, descarta IF true, descarta IF true, descarta IF true, descarta IF true, descarta IF true, descarta
  11. Microsserviços - Nossa dor! Q: Vamos ter um novo fluxo

    e precisamos alterar a ordem do processo atual para ganhar eficiência! Simples não!? Estamos em EDA? R: É…. fazer a coreografia de muitos fluxos está insano!
  12. Microsserviços - Dimensão da dor! Bounded Context: +7 Microservices: +60

    Domain Events: +40 Message Broker Microsserviços (Process A) Microsserviços (Process B) Microsserviços (Process C) Microsserviços (Process D) Microsserviços (Process E) Microsserviços (Process F) Domain Event Time to market
  13. Microsserviços - Nossa solução! Mediator Topology é útil para eventos

    que possuem várias etapas e requerem algum nível de orquestração para processar o evento. Todas essas etapas exigem algum nível de orquestração para determinar a ordem das etapas e quais podem ser executadas em série e em paralelo.
  14. Workflow Engine Microsserviços - Nossa solução! Message Broker Commands Mediator

    / Orchestrator Checkout Payment Shipment Coupon Etapa 1 Etapa 2 Etapa 3 Etapa 4
  15. Mediator Microsserviços - Nossa solução! Message Broker Commands Checkout Payment

    Shipment Coupon Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 1: Checkout finalizado Etapa 2: Pagamento aprovado Email enviado Etapa 3: Envio confirmado Seguro emitido Etapa 4: Cupom gerado & Email enviado
  16. Microsserviços - Nossa solução! Q: Vamos ter um novo fluxo

    e precisamos alterar a ordem do processo atual para ganhar eficiência! R: Show, vou alterar o workflow no mediator / orchestrator!