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

Arquitetura Orientada a Eventos com EventHub

Arquitetura Orientada a Eventos com EventHub

Ana Manzan

June 10, 2021
Tweet

More Decks by Ana Manzan

Other Decks in Programming

Transcript

  1. Globalcode – Open4education RENÍCIUS PAGOTTO Engenheiro de Software de XP

    Apoiador do Developers-BR Fundador do Itu Developers Renícius Pagotto [email protected] medium.com/@ renicius.pagotto
  2. Globalcode – Open4education Toda a aplicação fica contida em um

    único módulo São constituídas de módulos grandes e normalmente são altamente acopladas Aumento de complexidade e tamanho ao longo do tempo Escalabilidade limitada Falta de flexibilidade para novas tecnologias
  3. Globalcode – Open4education Service Oriented Architectures (SOA) é, em tradução

    livre, Arquitetura Orientada a Serviços. Esse conceito de arquitetura busca disponibilizar as funcionalidades de um sistema como um serviço. Se comunicam através de um Enterprise Service Bus (ESB), utilizando algum protocolo de comunicação (SOAP, por exemplo) ESB é ponto único de falha
  4. Globalcode – Open4education Vantagens A diminuição do tempo de desenvolvimento;​

    O baixo acoplamento entre as partes do sistema facilita a manutenção;​ Facilidade de agregar novas tecnologias a plataformas;​ E a possibilidade de reutilização de componentes.
  5. Globalcode – Open4education A arquitetura de microsserviços decompõe a aplicação

    por funções básicas​ Cada função é denominada um serviço e pode ser criada e implantada de maneira independente​ Cada serviço individual pode funcionar ou falhar sem comprometer os demais
  6. Globalcode – Open4education Mensageria é uma forma de comunicação assíncrona

    entre aplicações Comunicação é realizada por meio de mensagens Message Broker Produtores de mensagens Consumidores de mensagem
  7. Globalcode – Open4education Serviço de ingestão de eventos de baixa

    latência Pode processar milhões de requisições por segundo Processamento em tempo real PaaS
  8. Globalcode – Open4education O Event Driven Architecture é uma padrão

    de arquitetura que promove a produção, detecção, consumo e reação aos eventos de negócio; É um meio de comunicação assíncrona entre serviços Um serviço pode consumir ou emitir uma ou mais mensagens em uma ou mais filas.
  9. Globalcode – Open4education Eventos são notificações ou ações que o

    software emite ou recebe quando algo de significativo aconteceu, por exemplo, quando uma atualização de alguma entidade acontece em nosso sistema.
  10. Globalcode – Open4education Alto custo​ Complexidade na infraestrutura (DevOps, Dev)​

    Complexidade na arquitetura​ Falha de serviços Consistência eventual Desvantagens
  11. Globalcode – Open4education É um padrão de gerenciamento de consistência

    de dados em transações distribuídas Uma transação distribuída consiste em uma série de operações (eventos) que acontecem em diferentes aplicações e servidores.
  12. Globalcode – Open4education Coreografia Os serviços trocam eventos sem um

    ponto de controle centralizado. Cada serviço dispara eventos para outros serviços
  13. Globalcode – Open4education Orquestração Possui um controlador centralizado que controla

    todo o fluxo de eventos e de compensação de eventos em caso de erro em alguma etapa do processo.
  14. Globalcode – Open4education Referências https://mmussett.medium.com/event-driven-architectures-business-transactions-in-a-microservice- architecture-part-1-27e710b9d99d https://wso2.com/whitepapers/event-driven-architecture-the-path-to-increased-agility-and-high- expandability/ https://www.cloudamqp.com/blog/why-use-rabbitmq-in-a-microservice-architecture.html https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/ch02.html

    https://www.redhat.com/pt-br/topics/microservices/what-are-microservices https://www.infoq.com/br/presentations/microservices-uma-abordagem-para-arquitetura-de-aplicacoes/ https://www.opus-software.com.br/o-que-e-soa-e-quais-os-beneficios/ https://docs.microsoft.com/pt-br/azure/architecture/reference-architectures/saga/saga