Arquitetura Orientada à Eventos
Um famoso estilo de arquitetura é chamado EDA (Event driven architecture, Arquitetura orientada à eventos), esse é um popular estilo de arquitetura assíncrono e distribuído, usado para produzir aplicações altamente escaláveis e de alta performance. Também é um estilo bastante adaptável e extensível. Além de ser uma arquitetura desacoplada, ou seja, os elementos publicam e processam eventos sem saber detalhes de quem os ouvem ou quem os publicam.
Dentro dessa arquitetura existem duas topologias principais: - Broker - Mediator
Broker
A topologia broker é utilizada quando precisamos de um alto nível de capacidade de resposta e controle dinâmico sobre o processamento dos eventos. Ou seja, não há um elemento central orquestrando ou coordenando o fluxo de trabalho dos eventos.
Geralmente essa topologia é recomendada quando o fluxo de processamento é simples.
Nessa topologia existem quatro componentes principais, sendo:
- O evento inicial (initiating event): O evento inicial é quem inicia o fluxo inteiro do evento.
- O broker (event broker): Cada evento inicial é enviado para um canal de eventos (event channel) no broker para processamento.
- O processador de evento (event processor): O processador de evento aceita o evento inicial do broker e começa o processamento do mesmo. O processador que aceitou o evento inicial performa uma tarefa específica associada com esse evento e assícronamente informa o que ele fez para o resto do sistema criando um evento de processamento (isso é sempre uma boa prática recomendada à ser feita).
- O evento de processamento (processing event): São eventos que informam a conclusão de uma tarefa específica processada por um processador de evento através de um evento inicial.
Vantagens
- Processadores de evento altamente desacoplados
- Altamente escalável
- Alta capacidade de resposta
- Alta performance
- Alta tolerância à falhas
Desvantagens
- Controle sobre os fluxos de trabalho
- Lidar com erros
- Recuperabilidade
- Reiniciar as capacidades
- Inconsistência de informações
Mediator
A topologia mediator é comumente utilizada quando precisamos de um controle sobre o fluxo de trabalho dos eventos. Ou seja, existe um controlador central realizando a orquestração e coordenação sobre o processamento dos eventos.
Geralmente essa topologia é recomenada quando o fluxo de processamento possuí uma complexidade maior.
Essa topologia aborda algumas das deficiências e desvantagens da topologia broker.
Nessa topologia existem cinco componentes principais, sendo:
- O evento inicial (initiating event): Funciona da mesma forma descrita na topologia broker.
- Uma fila (event queue): Diferente da topologia broker o evento inicial é enviado para uma fila.
- Um mediador (event mediator): O mediador sabe os passos envolvidos e necessários para os fluxos de trabalho dos eventos, portanto, ele que gera os correspondentes eventos de processamento à serem enviados aos canais.
- Canais de eventos (event channels): Canais (geralmente filas), formam trocas de mensagens de ponta à ponta.
- Processadores de evento (event processors): Funciona da mesma forma descrita na topologia broker com uma única diferença que no final após performar a tarefa necessário não é disparada um evento de processamento informando o resto do sistema.
Vantagens
- Controle sobre os fluxos de trabalho
- Lidar com erros
- Recuperabilidade
- Reiniciar as capacidades
- Melhor consistência de informações
Desvantagens
- Processadores de evento mais acoplados
- Baixa escalabilidade
- Baixa performance
- Baixa tolerância à falhas
- Fluxos de trabalho complexos
Conclusão
Nesse post vimos uma introdução ao estilo de arquitetura orientado à eventos e suas duas principais topoogias para gerencimento, orquestração e coordenação dos eventos (broker e mediator).
Abraços, até a próxima.