Workshop: Criando Aplicações Baseadas em Event Sourcing e CQRS usando Apache Kafka e ksqlDB

Sala: Workshop 1

Horário: 9:00am - 6:05pm

Dia da semana: Segunda-feira

Nível: Intermediate

Workshop em Português

Pontos principais

  • Aprenda como modelar sistemas usando microservices e técnicas de Domain-Driven Design.
  • Saiba como implementar os padrões Event Sourcing e CQRS de forma correta.
  • Utilize o Apache Kafka como fundação para uma arquitetura dirigida por eventos.
  • Utilize o ksqlDB como mecanismo de captação de dados usando técnicas de CDC.
  • Utilize do ksqlDB como mecanismo de filtro, agregação, e composição de eventos.

Pré-requisitos

  • Conhecimento de modelagem de sistemas usando programação orientada a objetos ou técnicas similares.
  • Conhecimento básico de programação em linguagens como Java ou Go.
  • Conhecimentos básicos de Linux, Docker, Bash, e programação em Shell.
  • Familiaridade com sistemas de mensageria, tais como ActiveMQ, RabbitMQ.
  • Seu notebook deverá ter uma configuração mínima de 4 cores, 12GB de RAM e 80GB disponível em disco.
  • Seu notebook deverá conter o Software VirtualBox instalado e devidamente configurado.

Profissionais do desenvolvimento que estejam criando microservices comumente se deparam com o desafio de implementar a comunicação de dois ou mais serviços sem sacrificar o modelo de isolamento que estes proporcionam, que é, sem dúvida, o principal motivador do uso deste tipo de estilo arquitetural pois ele gera um menor acoplamento e possibilita a evolução e escala independente de cada microservice.

Devido  a própria natureza dos microservices, onde cada um escreve em sua própria base de dados, é necessário que os dados gerados por cada serviço sejam propagados para outros microservices que estejam interessados naquele dados, notadamente quando há uma relação entre ambos devido a modelagem do sistema. 

Uma das abordagens para endereçar esse desafio é garantir que cada microservice possa gravar seus dados em suas próprias bases de dados, bem como publicar esse mesmo dado para outros serviços através de um sistema de mensageria. No entanto, para que isso funcione bem é necessário que esta operação seja atômica. Em plataformas como Jakarta EE ou .NET, isso pode ser feito através do uso de 2PC, mas isso cria um acoplamento com a tecnologia e, portanto, não é uma solução ideal para este paradigma arquitetural.

Uma solução eficaz para lidar com esse tipo de desafio é a implementação do padrão Event Sourcing, que possibilita a persistência de dados bem como sua propagação para outras bases de dados de forma atômica, sem necessariamente adotar tecnologias específicas para endereçar a questão de atomicidade. Esta técnica consiste em tratar cada operação realizada por em uma entidade de negócio como um evento imutável, e esta série de eventos é então persistida num sistema de log que possibilite a reconstrução do estado da entidade de negócio a partir do log de eventos.

Este workshop ensinará como implementar corretamente o padrão Event Sourcing usando o Apache Kafka. Será mostrado como o Kafka oferece os recursos básicos para garantir questões relacionadas a consistência dos eventos, escalabilidade, tolerância a falhas, e também aspectos de segurança. Será também mostrado como implementar de forma apropriada a tecnologia ksqlDB, que possibilita a leitura de dados de bases de dados a partir de uma arquitetura baseada em conectores, bem como o processamento destes dados usando uma linguagem próxima ao SQL. O ksqlDB possui um papel chave neste tipo de arquitetura em possibilitar a reconstrução dos eventos em um estado que possa ser facilmente lido e replicado para todos os microservices interessados naquele estado; além de possibilitar a implementação simples de visualizações de dados oriundos de múltiplos microservices, usando a técnica de CQRS.

Speaker: Ricardo Ferreira

Developer Advocate at Confluent

Ricardo is a Developer Advocate at Confluent, the company founded by the creators of Apache Kafka. He has over 21 years of experience working with software engineering, where he specialized in different types of distributed systems such as integration, SOA, NoSQL, messaging, API management, and cloud computing. Prior to Confluent, he worked for other vendors such as Oracle, Red Hat and IONA Technologies, as well as several consulting firms.

While not working he enjoys grilling steaks on his backyard with his family and friends, where he gets the chance to talk about anything that is not IT related. Currently, he lives in Apex, North Carolina, with his wife, and son. Follow Ricardo on Twitter: @riferrei

Find Ricardo Ferreira at

Other Workshops:

Tracks

  • Segunda-feira, 14 de Dezembro

  • Arquiteturas que você sempre quis conhecer

    Segredos arquiteturais de aplicações populares, com milhões de pessoas usuárias e que nunca saem do ar.

  • Engenharia aplicada a Machine Learning

    Conheça as principais técnicas de engenharia  e arquitetura de software de larga escala aplicadas a Machine Learning.

  • Java e JVM em evolução

    Performance, escalabilidade e as mais recentes novidades da principal plataforma de desenvolvimento no Brasil e no mundo.

  • JavaScript: a plataforma da web moderna

    Explore profundamente os frameworks que tornam o JavaScript tão popular e saiba como as linguagens baseadas em JavaScript estão evoluindo o desenvolvimento de front-end (e back-end).

  • AMA (Ask Me Anything)

    Discussões mais profundas com palestrantes do QCon São Paulo.

  • Solutions Track

    Conheça soluções, ferramentas e técnicas de empresas parceiras do QCon São Paulo.

  • Terça-feira, 15 de Dezembro

  • Construindo culturas de desenvolvimento duradouras

    Criando e evoluindo a cultura de empresas: novas formas de organizar times com foco em produtividade.

  • Arquiteturas de vanguarda

    Conheça as tendências em técnicas, práticas e princípios que norteiam o estado da arte em arquitetura de software e podem ser alavancas não só para times e organizações de tecnologia, mas para os negócios, nos próximos anos.

  • Machine Learning e Inteligência Artificial

    Algoritmos, técnicas e ferramentas: o que está por trás de sistemas e soluções cada vez mais assertivos.

  • Ciência da Computação no mundo real

    Temas avançados em computação. Técnicas clássicas e modernas direto da academia para o seu código.

  • AMA (Ask Me Anything)

    Discussões mais profundas com palestrantes do QCon São Paulo.

  • Solutions Track #2

    Conheça soluções, ferramentas e técnicas de empresas parceiras do QCon São Paulo.

  • Quarta-feira, 16 de Dezembro

  • Microservices: melhores práticas e padrões

    Frameworks modernos e os desafios de implantação, gestão e pós-produção

  • Software Supply Chain

    Todas as fases do ciclo de vida de um artefato de software, do primeiro commit até o deployment. Segurança, observabilidade, genealogia e gestão de toda a sua cadeia de suprimentos de software

  • Data Science aplicada

    Tecnologias e as boas práticas da ciência de dados trazendo ganho e diferencial competitivo para grandes empresas.

  • Linguagens Contemporâneas

    Linguagens e plataformas emergentes, com ênfase em linguagens projetadas para alta concorrência e sistemas distribuídos.

  • Levando sua carreira para o próximo nível

    Habilidades e estratégias para destravar sua carreira e potencializar seu desenvolvimento profissional.

  • Solutions Track #3

    Conheça soluções, ferramentas e técnicas de empresas parceiras do QCon São Paulo.