Arquitetura orientada a eventos: um modelo de desenvolvimento de software
Tempo de leitura: cerca de 8 minutos
Tópicos:
Você sabia que diariamente produzimos 2,5 quintilhões de bytes de dados (isso é um seguido por 18 zeros)? Para processar e rastrear todos esses dados, as organizações precisam de aplicativos flexíveis que possam se adaptar às mudanças, manter os usuários engajados e fornecer informações instantâneas.
Neste artigo, abordaremos como a arquitetura orientada pa eventos pode ajudar suas equipes a desenvolver aplicativos para rastrear e sintetizar dados.
O que é uma arquitetura orientada pa eventos?
A arquitetura orientada pa eventos (EDA) é um modelo de desenvolvimento de software usado para responder a um “evento” em tempo real ou o mais próximo possível dele. Por exemplo, pense em fazer um pedido em um site de comércio eletrônico. Esse evento determina quais ações devem ser tomadas por qualquer serviço após a ocorrência do evento.
Para que o evento acione a resposta correta, um sistema orientado por eventos segue três componentes principais: produtores de eventos, roteadores de eventos e consumidores de eventos.
Funciona mais ou menos da seguinte forma:
Produtor de eventos: um cliente faz um pedido em um site de comércio eletrônico criando um evento de "check-out" que é enviado para um roteador de eventos.
Roteador de eventos: torna o evento disponível para consumidores de eventos que se inscrevem em eventos do tipo “Check Out”.
Consumidores de eventos: serviços como “Estoque" e “Comunicação".
O serviço “Estoque” verifica se o item está em estoque. Se o item estiver em estoque, um evento é criado e consumido pelo serviço de “Comunicação”, que envia uma mensagem informando ao cliente que o pedido está sendo processado, e outra mensagem será enviada quando ele for enviado.
Se o item estiver fora de estoque, o serviço de “Comunicação” avisa ao consumidor que ele pode esperar até que o item volte ao estoque ou cancelar o pedido.
Quando o item é enviado, um serviço de “Remessa” cria um evento que é consumido pelo serviço de “Comunicação”, que envia uma mensagem com informações como número de rastreamento do pacote, data de envio e data prevista para a entrega.
Quais são os benefícios do EDA?
Existem várias vantagens da programação orientada por eventos, entre eles:
Serviços acoplados livremente: produtores e consumidores de eventos não estão acoplados. O produtor não sabe quais consumidores estão aguardando pelos eventos que ele produz. Ele simplesmente entrega o evento a um roteador, onde os consumidores podem encontrar os tipos de eventos que eles assinam.
Como os produtores e consumidores se desconhecem e não dependem uns dos outros, não existe uma única fonte de erro. Agora, se um serviço falhar, os outros continuam funcionando para que os eventos sejam consumidos e processados conforme o esperado.
Escalável: como os produtores e consumidores não se conhecem, não há integração ponto a ponto. Agora é muito mais fácil adicionar novos serviços ao sistema e evitar falhas no processo.
Desenvolvimento Ágil: já que é fácil adicionar novos serviços aos sistemas EDA, o desenvolvimento se adéqua bem a um ambiente Ágil. O roteador de eventos é o mediador entre os serviços que filtra e envia eventos para os consumidores.
Isso significa que você não precisa escrever um código personalizado que procura, filtra e transmite eventos aos consumidores. No final das contas, isso acelera o desenvolvimento e permite que você adicione rapidamente novos serviços sem um grande impacto nos componentes existentes.
Custos mais baixos: os sistemas EDA são baseados em tecnologia push, o que significa que as ações acontecem sob demanda e o sistema não fica continuamente pesquisando os servidores em busca de eventos. A pesquisa e o processamento sob demanda usam menos recursos de rede, o que reduz os custos gerais.
Resposta e análise em tempo real: os aplicativos respondem às mudanças em tempo real usando dados atuais e históricos para tomar decisões. Esse tipo de resposta ajuda o sistema a prever e interromper ameaças de segurança rapidamente, automatizando e otimizando as cadeias de suprimentos.
Quando você deve usar uma arquitetura orientada pa eventos?
Se você precisa que seus aplicativos sejam interoperáveis com diversos sistemas e subsistemas, é hora de considerar o uso de uma programação baseada em eventos para abordar o seguinte:
Replicação de dados entre contas e regiões: a arquitetura orientada pa eventos funciona bem para empresas que operam em diferentes localizações geográficas. Os roteadores de eventos podem transferir dados para vários sistemas localizados em diferentes regiões e contas. Isso mantém os sistemas coordenados enquanto permite que suas equipes desenvolvam e implantem novos aplicativos e serviços independentemente de outras equipes.
Processamento fan-out e paralelo: use o EDA para “distribuir” um único evento para vários sistemas que precisam responder a ele, evitando que suas equipes escrevam um código personalizado que empurre o evento para cada consumidor. Cada sistema pode processar o evento simultaneamente, para finalidades diferentes.
Monitoramento e alertas do estado do recurso: os EDAs podem monitorar recursos para você e enviar alertas quando houver alterações no status, se encontrar anomalias e quando os componentes forem atualizados.
Integração de sistemas heterogêneos: use roteadores de eventos para compartilhar informações entre sistemas que usam pilhas de tecnologia diferentes.
Cenários de casos de uso
Talvez você queira implantar o modelo EDA nos seguintes cenários:
Financeiro
Monitore as transações em busca de fraudes. Empregue inteligência artificial (IA) e aprendizado de máquina (ML) para prever e encontrar probabilidade de fraude.
Área de saúde
Os eventos podem criar alertas para realizar manutenção preventiva em equipamentos médicos. Fornecem assistência médica proativa e personalizada com base em dados em tempo real capturados de dispositivos vestíveis para monitoramento.
Cadeia de suprimentos
Tenha visibilidade completa, desde a realização do pedido até o envio, com eventos criados em cada etapa do processo. Acompanhe a demanda do cliente sabendo quanto de estoque você tem em seu armazém e nas lojas.
Internet das Coisas (IoT)
As “coisas” inteligentes nunca sabem com qual dispositivo elas precisarão trabalhar. Por exemplo, as lâmpadas inteligentes precisam entender e responder a um evento como “Ligar”, quer o evento parta de IA, entrada manual em um app ou cronômetro.
Omnicanal
Monitorar o comportamento do cliente. Obtenha informações dos dados capturados para ajudá-lo a responder em tempo real às necessidades do cliente.
Como começar
Para muitas empresas, a implementação de um sistema EDA requer uma revisão completa dos sistemas e aplicativos existentes. Os EDAS ajudam as organizações a se tornarem mais ágeis, aproveitarem as tecnologias de nuvem e planejarem novas tecnologias. Uma revisão completa pode ser demorada e de alto custo. Mas há algumas coisas de alto nível que você pode fazer para começar.
Passo 1: tornar os sistemas existentes habilitados para eventos
Divida os processos isolados que estão em funcionamento por causa dos vários sistemas existentes que não interagem ou se comunicam bem entre si. Codifique-os para que eles possam publicar eventos em tempo real. Isso eliminará a necessidade de codificar APIs personalizadas para mover os dados.
Liberte os dados tornando as alterações e outros eventos imediatamente visíveis para os sistemas e aplicativos que querem saber sobre esses eventos.
Passo 2: modernizar seu ambiente de aplicativos atual
As arquiteturas híbridas e multinuvem estão ganhando popularidade devido à sua flexibilidade. De acordo com Santosh Rao, Gestão Principal de Produtos, AWS RDS/Aurora na Amazon Web Services:
“As arquiteturas híbridas se tornarão as pegadas que permitem que as organizações se estendam além de seus data centers e nos serviços em nuvem em várias plataformas.”
Portanto, você precisa de uma maneira de mover eventos e dados em vários sistemas que estão sendo executados simultaneamente. Ao mesmo tempo, você precisa transferir as cargas de trabalho para os sistemas que atualmente oferecem o melhor desempenho e disponibilidade.
Modernize seu ambiente de aplicativos para aproveitar a infraestrutura de nuvem. Por exemplo, integre-se aos aplicativos SaaS disponíveis na nuvem que oferecem suporte às funções que lhe interessam.
Passo 3: alertar e informar
Quando suas aplicações forem orientadas por eventos, seus dados não ficarão mais presos em sistemas fechados ou isolados. Os produtores de eventos permitem que você interaja com várias equipes, parceiros de negócios, fornecedores e clientes. Os eventos eliminam a necessidade de processos de extração, transformação e carregamento (ETL) e sondagem constante de entidades interessadas em seus dados. Isso libera a largura de banda da rede e os processos de CPU e oferece aos consumidores uma resposta mais em tempo real.
Visualize
Para começar, visualize e mapeie o que você está tentando realizar. Use as ferramentas disponíveis da Lucid para colaborar, capturar ideias e visualizar arquiteturas e processos de negócios.
O Lucidspark, um quadro branco virtual baseado na web, reúne membros de equipe de qualquer lugar do mundo para fazer brainstorming, colaborar e transformar ideias em itens acionáveis.
Use o Lucidchart para criar recursos visuais dinâmicos que mapeiam processos de negócios, fluxos de trabalho, gráficos, arquiteturas e qualquer outra coisa que lhe dê compreensão e uma visão geral dos sistemas que você deseja implantar. Todos os documentos do Lucidchart são armazenados na nuvem para que as equipes possam abrir e colaborar com eles em tempo real, não importa onde estejam localizados ou a hora do dia.
Diagrame sua arquitetura orientada por eventos usando nosso modelo personalizável de processo de gestão de eventos.
Use o Lucidchart para melhorar a visibilidade da sua infraestruturaSobre: Lucidchart
O Lucidchart, um aplicativo de diagramação inteligente que roda na nuvem, é um componente central da Suíte de colaboração visual da Lucid Software. Essa solução intuitiva de nuvem oferece às equipes a possibilidade de colaborar em tempo real para criar fluxogramas, mockups, diagramas UML, mapas de jornada do cliente e muito mais. O Lucidchart impulsiona as equipes para uma construção mais ágil do futuro. A Lucid tem orgulho de atender às principais empresas de todo o mundo, incluindo clientes como Google, GE e NBC Universal, e 99% das empresas da Fortune 500. A Lucid faz parceria com líderes do setor, como Google, Atlassian e Microsoft. Desde a inauguração, a Lucid recebeu vários prêmios por seus produtos e negócios e pela cultura no local de trabalho. Veja mais informações em lucidchart.com.