Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim...
Transcript of Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim...
Globalcode – Open4education
Introdução a Event Sourcing com KafkaMarcelo Ohashi
Arquiteto e Desenvolvedor Java
Globalcode – Open4education
Sobre mim
Marcelo Ohashi
• Arquiteto, consultor, developer a mais de 16 anos
• Java e outras
• Atualmente sou Arquiteto na Red Hat
• Integração, Microsserviços, Containers
• App Lifecycle, Ansible, Openshift
twitter: @mgohashi
Globalcode – Open4education
Eventos?
Pra que?
Globalcode – Open4education
Globalcode – Open4education
APIs/order/{orderId} - POST, GET, etc/client/{clientId} - POST, GET, etc
APIs/machine/{machineId}/work - POST, etcetc…
APIs/product/{prodId}etc…
Modelo da aplicação
Globalcode – Open4education
Características
● Menor complexidade
● Otimizado para consumir poucos recursos (CPU e memória)
● Baixo acoplamento entre os serviços
● Flexibilidade para adicionar/ modificar um componente no sistema
● Resiliência em situações adversas
Globalcode – Open4education
Eventos
Globalcode – Open4education
Eventos
Globalcode – Open4education
Streams de Eventos
Globalcode – Open4education
CQRS
Globalcode – Open4education
Event Sourcing com Kafka
Globalcode – Open4education
Kafka
Histórico
● Criado no LinkedIn
● Escrito em Scala e Java
● Monitoração de serviços e servidores
● Virou open source em 2011
● Em 2015 atingiu 1,1 Trilhão de mensagens por dia no LinkedIn
Globalcode – Open4education
Kafka
Estrutura Lógica
Globalcode – Open4education
Kafka
Componentes Principais
Globalcode – Open4education
Kafka
Event Sourcing com Kafka
● Garantia de ordem
● Cluster de brokers e partitions
● Log de eventos replicável
● Flexibilidade de configurações de Tópicos
● Streams [Window], Connectors
● Replay de eventos
Globalcode – Open4education
Kafka
Principais Use cases
● Event sourcing
● Tracking de atividades
● Métricas e Agregação de Logs
● Commit Log
● Data pipelines
Globalcode – Open4education
Demo:Processamento de Streams