Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim...

Post on 09-Mar-2020

6 views 0 download

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

mohashi@gmail.com

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