No mundo real, as coisas acontecem e nós reagimos a elas, o mesmo acontece em qualquer negócio; os eventos são o que os mantêm a funcionar, seja uma venda, uma consulta de cliente, uma tentativa maliciosa de violar o seu site ou um erro numa das suas aplicações principais. Tal como no mundo real, o seu negócio deve reagir a estes eventos; nem todos têm a mesma prioridade ou são importantes para o mesmo público na sua empresa.
Embora o último parágrafo possa parecer senso comum para a maioria das pessoas, uma grande maioria das arquiteturas em que as empresas operam não tem a capacidade de partilhar estes eventos com todas as partes que possam ter interesse neles. Os eventos são geridos pelas aplicações de um certo domínio, por exemplo, uma venda é gerida pela aplicação POS, uma fatura ou um recibo é gerado por essa ou outra aplicação do mesmo domínio, mas, se precisar de informar o seu departamento de manutenção que há outro produto vendido de que eles precisam de estar cientes, isso ocorrerá num processo em lote durante a noite e só estará disponível para eles no dia seguinte. Se o seu departamento de marketing quiser saber quais clientes compraram um determinado produto para criar uma nova campanha, ele pedirá a alguém do departamento de vendas que pedirá a alguém do departamento de TI para executar uma consulta e obter um relatório com essa informação.
Essa é a beleza das arquiteturas orientadas a eventos, você produz um evento, e todos os que possam ter interesse nele terão a oportunidade de reagir a ele.
Então, o que é uma Arquitetura Orientada a Eventos?
A arquitetura orientada a eventos é um padrão de design onde diferentes aplicações, desacopladas entre si, publicam assincronamente eventos num intermediário de eventos que pode ser posteriormente subscrito e consumido. Uma vez enviado um evento, qualquer aplicação que tenha acesso a esse tipo de evento poderá reagir a ele. A aplicação que enviou o evento não precisa de ter conhecimento sobre as outras aplicações que irão consumir esse evento. O contrário também é verdadeiro, um consumidor não precisa de saber onde um evento se originou.

Como funcionam as arquiteturas orientadas por eventos?
De uma forma simplista, existem produtores de eventos e consumidores de eventos, e existem duas formas comuns de lidar com os eventos:
Em ambos os casos, a responsabilidade do produtor termina no momento em que entrega o evento ao broker de eventos. O produtor não sabe quem o irá consumir, e a sua lógica de negócio não pode depender da suposição de que um determinado consumidor estará atento para o consumir.
Quando usar arquitetura orientada a eventos?
Existem alguns cenários-chave onde este tipo de arquitetura é fundamental:
Em geral, as arquiteturas orientadas a eventos são muito adequadas para casos de uso que exigem processamento em tempo real, escalabilidade e flexibilidade. Podem ajudar diferentes equipas a trabalhar em paralelo e com serviços desacoplados.
Isto não significa que só faça sentido nestes cenários e, mesmo que não tenha um destes cenários neste momento, se o seu objetivo é fazer crescer o seu negócio, tal acontecerá mais cedo do que pensa. E, então, terá um conjunto de benefícios potenciais que o ajudarão a responder mais rapidamente às mudanças nas condições de negócio e a lidar com o aumento do tráfego e do volume de dados à medida que escalam. Podem ajudar a melhorar o desempenho geral do sistema, a melhorar a colaboração e a tornar o processo de desenvolvimento mais tranquilo.

Se é fantástico, porque é que nem todas as empresas o utilizam?
Bem, há alguns desafios a superar ao usar arquiteturas orientadas a eventos:
Embora estes desafios possam parecer assustadores, muitas ferramentas modernas, frameworks e bibliotecas podem ajudar a mitigar algumas destas questões e tornar as arquiteturas orientadas a eventos mais fáceis de implementar e manter.

Existem algumas ferramentas que me podem ajudar a alavancá-lo?
Sim, atualmente existem várias ferramentas que o ajudam a implementar uma Arquitetura Orientada a Eventos. Esta lista não é exaustiva, mas inclui algumas das ferramentas mais populares:
É importante mencionar que, dependendo do seu caso de uso, certas ferramentas podem ser mais adequadas do que outras, e ferramentas diferentes podem ter conjuntos de funcionalidades e capacidades distintas.
Em conclusão, as arquiteturas orientadas para eventos permitem que as empresas reajam a eventos de forma flexível e escalável, permitindo-lhes responder mais rapidamente às necessidades e oportunidades de negócio em constante mudança. Ao desacoplar os produtores e consumidores de eventos, as empresas podem manter maior agilidade e resiliência, e evitar o risco de serem abaladas por sistemas monolíticos difíceis de alterar. Embora a implementação de arquiteturas orientadas para eventos possa ser desafiadora, os benefícios de velocidade, flexibilidade e escalabilidade aumentados tornam-na uma consideração valiosa para qualquer empresa que procure crescer e prosperar no ambiente competitivo e acelerado de hoje.
António Rodrigues Diretor de Tecnologia |