Os conceitos de Event Sourcing e Event Streaming são relacionados à manipulação de eventos, que, quando combinados, oferecem uma abordagem poderosa para capturar, processar e armazenar eventos em sistemas distribuídos.
Conheça cada um, sua importância e alguns casos práticos de usabilidade:
É um padrão de arquitetura de software no qual o estado de uma entidade, por exemplo, uma Conta ou uma Transação Pix, é determinado pela sequência de eventos que ocorreram para determinada operação. Nesse padrão, em vez de armazenar apenas o estado atual da entidade, cada evento representa uma mudança de estado e é armazenado de forma imutável e em sequência, que se torna a fonte de verdade para a entidade.
Com essa técnica é possível reconstruir o estado atual de uma entidade aplicando os eventos na ordem em que eles ocorreram. Essa abordagem facilita a recuperação de estados anteriores, podendo “retornar na linha do tempo” por meio dos eventos. Além disso, quando combinado com a estratégia de Event-Log, registrando os eventos na ordem cronológica em que ocorreram em um sistema, se tornam uma ferramenta poderosa de auditoria e conformidade dos sistemas para análise e depuração de problemas.
Geralmente Event Sourcing é usado em conjunto com outro padrão de arquitetura, o CQRS (Command Query Responsibility Segregation). Este padrão separa o processamento em comandos e consultas, permitindo otimizar cada operação conforme suas necessidades específicas, oferecendo maior escalabilidade para sistemas complexos.
É uma estratégia empregada em sistemas distribuídos que permite a produção, transmissão, armazenamento e processamento de eventos em tempo real. É projetado para lidar com grandes volumes de eventos de forma eficiente e resiliente, garantindo que os dados sejam consistentes em todo o sistema.
Essa abordagem pode utilizar tecnologias open source como Apache Kafka, RabbitMQ Streams ou soluções proprietárias Cloud Native como Amazon Kinesis e Azure Event Hub para criar pipelines de eventos e possibilitar a troca de informações entre produtores e consumidores.
O Event Streaming possibilita que os diversos componentes de sistema distribuído reajam instantaneamente aos eventos à medida que eles ocorrem, promovendo uma experiência mais responsiva para os clientes das aplicações.
Conexão entre Event Sourcing e Event Streaming
A sinergia entre os dois conceitos aprimora a eficiência e capacidade de adaptação dos sistemas, trazendo uma gama de benefícios em termos de escalabilidade, flexibilidade e resiliência. A integração dessas duas abordagens potencializa suas características individuais e cria um ambiente de processamento e armazenamento de eventos mais robusto.
Juntos, Event Sourcing e Event Streaming possibilitam a construção de sistemas capazes de suportar grandes volumes de eventos, bem como gerenciá-los de forma eficiente. Essa combinação fornece um ambiente propício para decisões baseadas em dados confiáveis e permite uma rápida adaptação à mudanças para atender as necessidades do negócio. Além disso, eles proporcionam às organizações uma visão holística e confiável dos eventos em seu sistema, permitindo melhorar a experiência do cliente por meio de uma maior consistência e responsividade.
A implementação de uma arquitetura baseada em Event Sourcing e Event Streaming traz algumas vantagens técnicas e competitivas.
Trazemos 5 delas a seguir:
E quais são os trade-offs dessa tecnologia?
Nem tudo é perfeito, embora as abordagens de Event Sourcing e Event Streaming tenham muitas vantagens, também trazem consigo certa complexidade ao sistema. É essencial tomar medidas adequadas para garantir que esses desafios não prejudiquem a estratégia da empresa. A seguir, apresentamos 5 considerações cruciais que devem ser levadas em conta ao optar por essa arquitetura:
Estudos de Caso
A seguir, examinaremos três estudos de caso em que Event Sourcing e Event Streaming foram fundamentais para o sucesso do negócio, ilustrando as vantagens dessas abordagens.
O Bankly, uma plataforma de tecnologia financeira e Banking as a Service, tem como objetivo proporcionar soluções modulares e altamente escaláveis para empresas que buscam adentrar no setor financeiro, seja por meio da construção de um banco digital ou Embeed Finance. Um dos pilares estratégicos adotados pela empresa tem sido o uso de Event Driven Architecture (EDA), em que Event Sourcing e Event Streaming são as principais abordagens utilizadas pela Engenharia de Software e tecnologias como RavenDB e DynamoDB, bancos de dados NoSQL altamente escaláveis e SQL Server, banco de dados relacional, que conta com uma funcionalidade conhecida como Temporal Table e o Apache Kafka são peças-chaves para a implementação dessa Arquitetura.
A adoção de Event Sourcing, que permite uma rastreabilidade mais completa das transações e atividades dentro dos sistemas transacionais e cadastrais, garante um registro histórico e imutável de todas as alterações no estado do sistema, aumentando a conformidade e permitindo auditorias mais eficientes.
Para lidar com o desafio da escalabilidade, o Bankly recorreu ao Event Streaming. Esta abordagem possibilita o processamento de grandes volumes de eventos em tempo real, permitindo que os sistemas do Bankly escalonem eficientemente à medida que mais clientes se juntam à plataforma.
Através da implantação estratégica dessas táticas, o Bankly não só conseguiu oferecer soluções financeiras resilientes e facilmente escaláveis, mas também pôde atender auma diversidade de empresas ansiosas por se estabelecerem no setor financeiro. Esta abordagem, longe de ser estática, tem desencadeado um ciclo contínuo de aprimoramentos precisos nos processos operacionais, aumentando a observabilidade dos sistemas e potencializando o desempenho dos produtos. Mais do que isso, tem habilitado a geração de insights valiosos, permitindo que os clientes maximizem suas vantagens e impulsionem significativamente os resultados de seus negócios através de sua plataforma de Webhooks, que processa todos os eventos do Bankly e os envia aos parceiros em tempo real.
Em conclusão, através da eficaz combinação de Event Sourcing e Event Streaming, o Bankly tem solidificado a sua posição como uma plataforma de Banking as a Service confiável e extremamente escalável. Esta abordagem tem permitido à empresa superar desafios frequentes no setor financeiro, demonstrando o imenso valor e potencial destas estratégias para empresas buscando se estabelecer nesta indústria.
O LinkedIn, uma das maiores redes sociais profissionais do mundo, enfrentou desafios significativos relacionados à escalabilidade e desempenho à medida que seu número de usuários e quantidade de dados cresceram exponencialmente. Para enfrentar esses desafios, o LinkedIn adotou uma arquitetura baseada em
O impacto real dessa arquitetura no LinkedIn foi a capacidade de escalar e lidar com um imenso volume de eventos em tempo real, tais como atualizações de perfil, conexões e sugestões de emprego. A combinação de Event Sourcing e Event Streaming utilizando o Apache Kafka, desenvolvido internamente para suportar o imenso volume de dados processado e posteriormente se tornando um projeto mantido pela Apache Software Foundation.
A adoção de uma arquitetura orientada a eventos provou ser uma estratégia vital para o LinkedIn, pois propiciou a escalabilidade requerida, o desacoplamento dos componentes e o processamento em tempo real - características que dificilmente seriam alcançadas por meio de arquiteturas mais tradicionais. Esta abordagem tem sido fundamental na evolução contínua da plataforma, demonstrando o potencial e a versatilidade de uma arquitetura orientada a eventos.
Assim como o LinkedIn, a Netflix, líder global em streaming de vídeo, também enfrentou grandes desafios em termos de escalabilidade e capacidade de resposta à medida que seu número de assinantes e catálogo de conteúdo cresceu. Para enfrentar essas questões, a empresa optou por uma arquitetura orientada a eventos, usando principalmente o
A combinação de Event Streaming para lidar com o volume massivo de eventos gerados pelos usuários, como visualizações, pausas e retomadas de vídeos.
A combinação de Event Sourcing e Event Streaming permitiu à Netflix processar e armazenar esses eventos de maneira eficiente, possibilitando a geração de recomendações personalizadas em tempo real e a análise de dados para melhorar continuamente a experiência do usuário. Essa abordagem também ajudou a Netflix a garantir uma alta disponibilidade e resiliência de seus sistemas, mesmo diante de picos de demanda e falhas de infraestrutura.
Nesse caso, o uso dessa arquitetura foi fundamental para a Netflix, pois possibilitou a análise e o processamento de grandes volumes de dados em tempo real e garantiu a escalabilidade e a resiliência necessárias para oferecer uma experiência de usuário de alta qualidade.
Em todos os exemplos, a combinação sinérgica de Event Sourcing e Event Streaming mostrou-se crucial para permitir que essas empresas escalassem e se adaptassem às demandas crescentes de seus negócios, proporcionando uma experiência de usuário consistente e responsiva, o que não teria sido possível utilizando abordagens de arquitetura tradicionais.
Diante disso, surge a questão: por que os executivos deveriam priorizar o Event Sourcing e o Event Streaming?
O entendimento e a implementação dessas estratégias são fundamentais para qualquer executivo que busque desenvolver e expandir produtos digitais escaláveis e de alta performance. A adoção destas abordagens arquiteturais pode gerar benefícios significativos para o negócio, melhorando a eficiência operacional e elevando a satisfação do usuário - dois fatores-chave para o sucesso e crescimento contínuo em um mercado cada vez mais digital e competitivo.
Em resumo, a adoção estratégica desses dois conceitos pode trazer uma série de benefícios tangíveis para os negócios, entre os quais se destacam:
Ao compreender o potencial dessas abordagens e aplicá-las efetivamente, os executivos têm a oportunidade de utilizar essas técnicas para impulsionar seus negócios e criar produtos digitais de sucesso. A combinação de escalabilidade, agilidade e insights em tempo real torna esses conceitos essenciais para quem busca criar e manter uma vantagem competitiva no atual ambiente de negócios. Portanto, é vital para os executivos aprofundar o conhecimento nestes temas e explorar como eles podem beneficiar seus negócios e produtos digitais.
*Por Tiago Costa, CTPO e cofundador do Bankly e Fernando Seguim, Head de Engenharia do Bankly