Apostilas em PDF – Arquitetura orientada à eventos e mensageria

Baixe o material de estudo



baixar curso online

Fala, meus consagrados! Beleza?

A Arquitetura Orientada a Eventos (Event-Driven Architecture – EDA) caracteriza-se pela organização do sistema em torno da produção, detecção, transmissão e reação a eventos. Nesse modelo, os componentes são desacoplados funcional e temporalmente. O produtor do evento não conhece os consumidores, nem controla sua execução, o que implica maior flexibilidade arquitetural.

Um evento representa a ocorrência de um fato relevante no domínio do negócio, sinalizando que algo aconteceu, sem impor como os demais componentes devem reagir. Os processos se comunicam essencialmente através da propagação de eventos, que opcionalmente podem carregar dados.

A principal vantagem do sistema baseado em eventos é o de que os processos são fracamente acoplados, ou seja, a princípio não precisam referenciar um ao outro para se comunicarem.

Modelagem dirigida a eventos parte do pressuposto de que:

  • Um sistema possui um número finito de estados; e
  • Estímulos externos ou internos provocam a transição entre eles.

Evento é a ocorrência de uma troca de informações ou uma mudança significativa de estado, como o acionamento de um sensor ou um comando de usuário. Evento é uma notificação imutável de que um fato ocorreu. Atua como um registro de qualquer ocorrência significativa ou uma 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.

A Arquitetura Orientada a Eventos é composta de produtores e consumidores de eventos (clientes):

  • O produtor é responsável por gerar o evento; e 
  • O consumidor reage ao evento de acordo com sua lógica interna.

O produtor 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.

É fundamental observar que:

  • O produtor não invoca diretamente o consumidor;
  • A comunicação ocorre de forma assíncrona; e
  • O produtor não depende da disponibilidade imediata do consumidor.

Essas características diferenciam a EDA de arquiteturas fortemente acopladas baseadas em chamadas síncronas.

Mensageria na EDA é o mecanismo que viabiliza a comunicação entre produtores e consumidores de eventos. Atua como intermediária, recebendo, armazenando e distribuindo mensagens (eventos). Não se confunde com a arquitetura em si, mas é um elemento fundamental de suporte à Arquitetura Orientada a Eventos.

Sua função principal é garantir:

  • Entrega assíncrona de mensagens;
  • Desacoplamento entre componentes; e
  • Maior tolerância a falhas.

Na EDA, a comunicação assíncrona implica que o envio do evento não bloqueia o produtor à espera de resposta. Isso favorece:

  • Escalabilidade;
  • Elasticidade; e
  • Independência entre ciclos de execução.

Contudo, o desacoplamento temporal implica maior complexidade de rastreamento, pois o fluxo de execução não é linear nem centralizado.

Espero que tenham gostado! 

Forte abraço e até a próxima jornada!

_________________________

Professor Rogerão Araújo

Fonte: Gran Cursos Online

Download disponível – Arquitetura orientada à eventos e mensageria



Baixar video aula

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *