SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Globalcode – Open4education
Introdução a Event Sourcing com Kafka
Marcelo 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, etc
etc…
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
Tdc2019   intro event-sourcing_kafka

Mais conteúdo relacionado

Semelhante a Tdc2019 intro event-sourcing_kafka

Internet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouInternet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouJose Wilker
 
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho DuroTDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Durotdc-globalcode
 
Internet das coisas - A revolução já começou
Internet das coisas - A revolução já começouInternet das coisas - A revolução já começou
Internet das coisas - A revolução já começouJose Wilker
 
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010Fabian Gehrke
 
A Revolução já começou
A Revolução já começouA Revolução já começou
A Revolução já começouJose Wilker
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterEdlaine Zamora
 
Monitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsMonitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsRenato Groff
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosFlávio Lisboa
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaCleber Dantas
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineEder Magalhães
 
Monitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingMonitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingRenato Groff
 
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosTDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosRafael Chaves
 
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...tdc-globalcode
 
Bruxarias em Python - Como desenvolver soluções escaláveis
Bruxarias em Python - Como desenvolver soluções escaláveisBruxarias em Python - Como desenvolver soluções escaláveis
Bruxarias em Python - Como desenvolver soluções escaláveisViotti Equipamentos Médicos
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...tdc-globalcode
 
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...tdc-globalcode
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservicestdc-globalcode
 

Semelhante a Tdc2019 intro event-sourcing_kafka (20)

Internet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouInternet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começou
 
Machine Learning Black Boxes
Machine Learning Black BoxesMachine Learning Black Boxes
Machine Learning Black Boxes
 
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho DuroTDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
 
Internet das coisas - A revolução já começou
Internet das coisas - A revolução já começouInternet das coisas - A revolução já começou
Internet das coisas - A revolução já começou
 
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
 
A Revolução já começou
A Revolução já começouA Revolução já começou
A Revolução já começou
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
 
Monitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsMonitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application Insights
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviços
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
 
Arquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App EngineArquiteturas Java EE no Google App Engine
Arquiteturas Java EE no Google App Engine
 
Monitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingMonitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed Tracing
 
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosTDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
 
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
 
Bruxarias em Python - Como desenvolver soluções escaláveis
Bruxarias em Python - Como desenvolver soluções escaláveisBruxarias em Python - Como desenvolver soluções escaláveis
Bruxarias em Python - Como desenvolver soluções escaláveis
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
 
Sua aplicação nas nuvens com open shift
Sua aplicação nas nuvens com open shiftSua aplicação nas nuvens com open shift
Sua aplicação nas nuvens com open shift
 
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
TDC2016SP - Unificando a autenticação e controlando acesso a API com Identity...
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservices
 

Tdc2019 intro event-sourcing_kafka