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

18
Globalcode – Open4education Introdução a Event Sourcing com Kafka Marcelo Ohashi Arquiteto e Desenvolvedor Java

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

Page 1: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras

Globalcode – Open4education

Introdução a Event Sourcing com KafkaMarcelo Ohashi

Arquiteto e Desenvolvedor Java

Page 2: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras

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

[email protected]

Page 3: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras

Globalcode – Open4education

Eventos?

Pra que?

Page 4: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras

Globalcode – Open4education

Page 5: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras

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

Page 6: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras

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

Page 7: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras

Globalcode – Open4education

Eventos

Page 8: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras

Globalcode – Open4education

Eventos

Page 9: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras

Globalcode – Open4education

Streams de Eventos

Page 10: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras

Globalcode – Open4education

CQRS

Page 11: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras

Globalcode – Open4education

Event Sourcing com Kafka

Page 12: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras

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

Page 13: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras

Globalcode – Open4education

Kafka

Estrutura Lógica

Page 14: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras

Globalcode – Open4education

Kafka

Componentes Principais

Page 15: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras

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

Page 16: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras

Globalcode – Open4education

Kafka

Principais Use cases

● Event sourcing

● Tracking de atividades

● Métricas e Agregação de Logs

● Commit Log

● Data pipelines

Page 17: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras

Globalcode – Open4education

Demo:Processamento de Streams

Page 18: Introdução a Event Sourcing com Kafka · 2019-05-16 · Globalcode – Open4education Sobre mim Marcelo Ohashi • Arquiteto, consultor, developer a mais de 16 anos •Java e outras