Jump to section

Arquitetura orientada a eventos

Copiar URL

A arquitetura orientada a eventos ou EDA (Events-Driven Architecture) é um modelo de arquitetura de software para o design de aplicações. Um sistema orientado a eventos é feito para capturar, comunicar e processar eventos entre serviços desacoplados. Isso significa que os sistemas podem permanecer assíncronos enquanto compartilham informações e realizam tarefas. 

Vários designs de aplicações modernos são direcionados para eventos, como os frameworks de mecanismo do cliente, que devem utilizar dados do cliente em tempo real. É possível criar aplicações orientadas a eventos em qualquer linguagem porque esse tipo de arquitetura é uma abordagem de programação. A arquitetura orientada a eventos permite um pouco de acoplamento, o que a torna uma boa opção para arquiteturas de aplicações distribuídas e modernas.

Esse tipo de arquitetura é levemente acoplado porque os produtores de eventos não sabem que os consumidores estão detectando um evento. Além disso, esse evento não sabe as consequências da sua ocorrência.

 

Um evento atua como um registro de qualquer ocorrência significativa ou mudança de estado do hardware, ou software do sistema. Um evento e uma notificação de evento não são a mesma coisa. Este último é uma mensagem ou notificação enviada pelo sistema para avisar outra parte do sistema que um evento ocorreu.

A origem de um evento pode ser a partir de entradas internas ou externas. Os eventos podem ser gerados por um usuário, como clicar no mouse ou apertar uma tecla, uma fonte externa, como uma saída de sensor, ou vir do sistema, como carregar um programa.

Desacoplamento e acoplamento leve referem-se a dois conceitos relacionados, mas distintos, na arquitetura de software e de sistemas orientados a eventos.

O desacoplamento é a prática de eliminar ou minimizar dependências diretas entre componentes separados em um sistema, de modo que nenhum componente dependa de outro. No contexto da EDA, o desacoplamento é feito garantindo que os componentes que geram eventos enviem dados de eventos sem um componente específico do consumidor em mente. Essa desconexão permite que os componentes sejam independentes, criando um sistema geral mais flexível.

O acoplamento leve é uma forma específica de desacoplamento que visa reduzir o grau de interdependência entre os componentes, mas não separá-los completamente. Em um sistema levemente acoplado, os componentes podem interagir entre si, mas de uma forma que não cria nenhum tipo de dependência.

Os dois sistemas promovem flexibilidade e independência que, por sua vez, geram sistemas ágeis e escaláveis.

A arquitetura orientada a eventos é composta de produtores e consumidores de eventos (clientes). Um produtor de eventos detecta ou percebe um evento e o representa como uma mensagem. Devido ao desacoplamento, ele não conhece o consumidor nem o resultado do evento.

Após um evento ser detectado, ele é transmitido do produtor para os consumidores por meio de canais, onde uma plataforma de processamento de eventos processa o evento de maneira assíncrona. Os consumidores de eventos precisam ser informados sobre quando um evento ocorreu. Eles podem processar o evento ou apenas ser afetados por ele.

A plataforma de processamento de eventos executará a resposta correta a um evento e enviará a atividade downstream para os consumidores certos. É nessa atividade downstream que o resultado de um evento é visto.O 

Apache Kafka é uma plataforma distribuída de transmissão de dados muito usada para processamento de eventos. Ele consegue lidar com publicação, assinatura, armazenamento e processamento de fluxos de eventos em tempo real. O Apache Kafka oferece suporte a uma variedade de casos de uso em que a alta produtividade e escalabilidade são vitais. Ao minimizar a necessidade de usar integrações point-to-point (P2P) para o compartilhamento de dados em determinadas aplicações, ele se mostra capaz de reduzir a latência a milésimos de segundos.

Há outros gerenciadores de eventos de middleware disponíveis que podem servir de plataforma de processamento de eventos.

A arquitetura orientada a eventos pode ser baseada em um modelo de publicação/subscrição (pub/sub) ou de transmissão de eventos.

Modelo pub/sub
Essa é uma infraestrutura de mensageria baseada em subscrições de um fluxo de eventos. Com esse modelo, após um evento acontecer ou ser publicado, ele é enviado aos clientes que precisam ser informados.

Modelo de fluxo de eventos
Nesse modelo, os eventos são gravados em um log. Consumidores de eventos não se inscrevem em um fluxo de eventos. Em vez disso, eles podem ler o log a partir de qualquer parte do fluxo e ingressar nele a qualquer momento.

Há alguns tipos de transmissão de eventos:

  • O processamento de fluxo de eventos usa uma plataforma de transmissão de dados, como o Apache Kafka, para ingerir eventos e processar ou transformar o fluxo deles. 
  • O processamento simples de eventos ocorre quando um evento aciona imediatamente uma ação no consumidor.

O processamento de eventos complexos requer que um consumidor processe uma série de eventos para detectar padrões. O processamento de fluxo de eventos também pode ser usado para detectar padrões.

Ao adotar uma EDA, as organizações conquistam um sistema flexível capaz de melhorar fluxos de trabalho se adaptando a mudanças e tomando decisões em tempo real. A consciência situacional em tempo real significa que as decisões de negócios, sejam elas manuais ou automatizadas, podem ser tomadas usando todos os dados disponíveis que refletem o estado atual dos seus sistemas.

Os eventos são capturados à medida que ocorrem a partir de fontes de eventos, como aplicações, redes e dispositivos de Internet das Coisas (IoT), permitindo que produtores e consumidores de eventos compartilhem informações de status e respostas em tempo real.

As organizações podem adicionar arquitetura orientada a eventos aos seus sistemas e aplicações para melhorar a escalabilidade e a capacidade de resposta das aplicações, além do acesso aos dados e ao contexto necessários para melhores decisões de negócios serem tomadas.

A arquitetura orientada a eventos oferece a vantagem do desacoplamento, em que produtores e consumidores de dados ou serviços não precisam se comunicar diretamente, permitindo um sistema mais flexível e escalável. Por sua vez, isso simplifica a integração de novos componentes, promove a tolerância a falhas e aumenta a eficiência geral do sistema.

A Red Hat oferece as ferramentas integradas e o software de gerenciamento para que você conecte com rapidez microsserviços e tecnologias legadas em ambientes de nuvem híbrida, além de dar suporte para sua arquitetura orientada a eventos com uma integração ágil.

O Red Hat OpenShift, com o conjunto de ferramentas do Red Hat Application Foundations, ajuda as organizações a melhorarem a produtividade dos desenvolvedores, automatizarem os pipelines de CI/CD e mudarem os esforços de segurança no início e durante todo o ciclo de desenvolvimento. Isso permite uma cadeia de fornecimento de software mais segura, automatizando práticas de DevSecOps e, ao mesmo tempo, oferecendo segurança para aplicações no runtime. 

OpenShift Dev Spaces oferece aos desenvolvedores um ambiente de desenvolvimento mais rápido, consistente e confiável, além de controle centralizado das operações de TI. Os recursos do OpenShift, como Serverless e Service Mesh, e os recursos do Red Hat Application Services, como frameworks e runtimes de aplicações, gerenciamento de API, transmissão de dados e serviços orientados a eventos capacitam os desenvolvedores com acesso self-service a linguagens e ferramentas, além de aumentar a produtividade. Para os desenvolvedores que têm uma ferramenta favorita específica, a Red Hat oferece acesso a um imenso ecossistema de soluções parceiras compatíveis com o OpenShift.

Leitura recomendada

Artigo

O que é integração?

Quer saber o que é integração? Descubra o que é, como incorporá-la e por que ela é muito melhor com tecnologias open source.

Artigo

O que é Apache Kafka?

O Apache Kafka é uma plataforma distribuída de transmissão de dados que é capaz de publicar, subscrever, armazenar e processar fluxos de registro em tempo real.

Artigo

O que é uma API?

API significa interface de programação de aplicações, um conjunto de definições e protocolos para criar e integrar softwares de aplicações.

Leia mais sobre integração

Soluções Red Hat

Conjunto abrangente de tecnologias para integração e mensageria. Inclui Red Hat 3scale API Management, Red Hat AMQ, Red Hat Runtimes, captura de dados de alterações e um registro de serviço.

Plataforma gerenciada e hospedada, aplicações e data services que otimizam a experiência da nuvem híbrida, reduzindo os custos e a complexidade operacionais de aplicações nativas em nuvem.

Um conjunto de soluções, ferramentas e componentes para desenvolver e manter aplicações nativas em nuvem. Inclui Red Hat AMQ, Red Hat Data Grid, Red Hat JBoss® Enterprise Application Platform, Red Hat JBoss Web Server, uma versão Red Hat do OpenJDK, uma versão Red Hat do Quarkus, um conjunto de runtimes nativos em nuvem, kit de ferramentas de migração para aplicações, login único (SSO) e serviço de inicialização.

Um conjunto abrangente de tecnologias de integração e runtimes para criar, implantar e operar aplicações com segurança e em escala na nuvem híbrida.

Conteúdo adicional

Ebook

Integração ágil

Crie uma infraestrutura ágil para viabilizar uma organização adaptável.

Visão geral

Red Hat Cloud Services

Serviços gerenciados para desenvolvimento nativo em nuvem.

Treinamento

Treinamento gratuito

Red Hat Agile Integration Technical Overview