Jump to section

O que é uma arquitetura orientada por eventos?

Copiar URL

A arquitetura orientada a eventos é um modelo de arquitetura de software para o design de aplicações. Em um sistema orientado a eventos, os componentes de captura, comunicação, processamento e persistência de eventos formam a estrutura básica da solução. Isso é diferente do modelo tradicional orientado a solicitações.

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. Com a arquitetura orientada a eventos, você usa uma quantidade mínima de acoplamentos, o que a torna uma boa opção para arquiteturas de aplicações distribuídas 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 é qualquer ocorrência ou mudança de estado significativa no software ou hardware de um sistema. Uma notificação de evento é uma mensagem enviada pelo sistema para avisar outra parte do mesmo sistema que algo ocorreu. Ela não é o evento em si.

A origem de um evento pode ser interna ou externa. Os eventos podem ser gerados por um usuário que, por exemplo, clica no botão do mouse ou pressiona uma tecla no teclado, por uma fonte externa, como uma saída de sensor, ou por um componente interno do sistema, como o carregamento de um programa.

A arquitetura orientada a eventos é composta de produtores e consumidores de eventos. Um produtor detecta ou percebe um evento e o representa como uma mensagem. Ele não conhece o consumidor nem o resultado do evento. 

Após um evento ser detectado, ele é transmitido do produtor para o consumidor por meio de canais, em que uma plataforma processa eventos de maneira assíncrona. O consumidor precisa ser informado quando um evento ocorre. Ele pode processar ou apenas ser afetado pelo evento. 

A plataforma de processamento de eventos executa a resposta correta para um determinado evento e envia a atividade em sentido downstream, para os consumidores certos. É nessa atividade downstream que o resultado do evento é visto. 

O Apache Kafka é uma plataforma de transmissão de dados distribuída muito usada para o processamento de eventos. Ele é capaz de realizar publicações, subscrições, armazenamento e processamento de fluxos de eventos em tempo real. O Apache Kafka é compatível com vários casos de uso em que alta taxa de transferência e escalabilidade são essenciais. Além disso, por minimizar a necessidade de integrações point-to-point (P2P) para o compartilhamento de dados em determinadas aplicações, essa plataforma ajuda a 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 de pub/sub

Trata-se de uma infraestrutura de mensageria baseada em subscrições em um fluxo de eventos. Nesse modelo, após um evento ocorrer ou ser publicado, ele é enviado aos subscritores que precisam ser informados.

Modelo de transmissão de eventos

No modelo de transmissão, os eventos são gravados em um log. Os consumidores não precisam se inscrever em uma transmissão de evento. Na verdade, eles podem ler a partir de qualquer parte da transmissão e ingressar nela a qualquer momento. 

Há alguns tipos de transmissão de eventos:

  • Processamento do fluxo do evento: usa uma plataforma de transmissão, como o Apache Kafka, para ingerir e processar eventos ou transformar seu fluxo. Esse método pode ser usado para detectar padrões significativos em fluxos de eventos.
  • Processamento de evento simples: é quando um evento aciona imediatamente uma ação no consumidor.
  • Processamento de evento complexo: requer que um consumidor processe uma série de eventos para detectar padrões.

Ao adotar uma arquitetura orientada a eventos, as organizações conquistam um sistema flexível capaz de se adaptar a mudanças e tomar decisões em tempo real. Ser capaz de reconhecer situações em tempo real significa que a tomada de decisões de negócios, seja esse processo manual ou automatizado, é feita usando todos os dados disponíveis que reflitam o estado atual dos sistemas. 

À medida que ocorrem, os eventos são capturados em origens como redes, aplicações e dispositivos de Internet das Coisas (IoT). Isso permite que produtores e consumidores de eventos compartilhem informações sobre status e resposta em tempo real. 

As organizações podem agregar a arquitetura orientada a eventos aos seus sistemas e aplicações para aprimorar a escalabilidade e a capacidade de resposta, além de acessar os dados e o contexto necessários para um processo de tomada de decisões empresariais mais eficiente.

Atualmente, arquiteturas levemente acopladas orientadas a eventos e aplicações nativas em nuvem desenvolvidas por meio de métodos ágeis e de DevOps precisam de uma abordagem de integração igualmente versátil e escalável. 

Essa é a visão da Red Hat para a integração ágil: uma abordagem de conexão de recursos que combina tecnologias de integração, técnicas de entrega ágil e plataformas nativas em nuvem para aumentar a rapidez e a segurança na entrega de aplicações. 

A Red Hat oferece plataformas de integração e aplicações de gerenciamento para que você conecte com rapidez microsserviços e tecnologias legadas em ambientes de nuvem híbrida, além de oferecer suporte à implementação da arquitetura orientada a eventos com integração ágil.

Teste o Kafta gratuitamente

Acesse o Red Hat OpenShift Streams for Apache Kafka, um serviço totalmente hospedado e gerenciado pelo Kafka para aplicações baseadas em stream.

Keep reading

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

Red Hat Integration

Conjunto abrangente de tecnologias para integração e mensageria.

Red Hat Cloud Services

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.

Red Hat Runtimes

Conjunto de soluções, ferramentas e componentes para desenvolvimento e manutenção de aplicações nativas em nuvem.

Red Hat Process Automation

Conjunto de soluções para automatizar decisões e processos empresariais de maneira inteligente.

Conteúdo adicional

Ebook

Integração ágil

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

Relatório de analistas

Red Hat Integration

Red Hat Integration ajuda a otimizar o desempenho das aplicações.

Visão geral

Red Hat Cloud Services

Serviços gerenciados para desenvolvimento nativo em nuvem.

Treinamento

Treinamento gratuito

Red Hat Agile Integration Technical Overview

Illustration - mail

Quer receber mais conteúdo deste tipo?

Cadastre-se para receber a nossa newsletter Red Hat Shares.