SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
@fabiojose
Event-driven
SAGAs com Kafka
SAGA orientada à eventos utilizando Kafka Streams. SAGA é a solução para
transações distribuídas em ecossistemas µServices.
everis - São Paulo
08-NOV-2018
@fabiojose
Olá!
Eu sou Fábio José
Você pode me encontrar em
BIO
15+ anos experiência, Engenheiro DevOps, 4+ como everis, java &
node, GNU/Debian, Blockchain BR, dzone.com, medium.com
@fabiojose
1.
O que são SAGAs?
Transações distribuídas em Microservices
@fabiojose
SAGA
➔ two phase commit - 2PC não é uma opção
➔ Padrão proposto para substituir transações de longa duração em
banco de dados relacionais
➔ Implementadas utilizando Coreografia ou Orquestração
➔ Sequências de transações locais
➔ Empregado para transações distribuídas em µServices
@fabiojose
SAGA
Transação Distribuída - 2PC
Comparação
Contas Fraude Crédito Cartões
µS
Poupança
BD BD BD BD BD
Contas
µS
Fraude
µS
Crédito
µS
Cartões
µS
Poupança
BD BD BD BD BD
@fabiojose
2.
Event-driven
Orientado a eventos
@fabiojose
Orientado a Eventos
➔ Um produtor e muitos consumidores
➔ Uma origem e muitos destinos
➔ Comunicação assíncrona
➔ Requer um gerenciador de eventos - Event Bus
➔ Fire and forget
➔ Comunica um fato que ocorreu em algum ponto do passado
@fabiojose
3.
Apache Kafka
Plataforma distribuída para mensagens
@fabiojose
Kafka
➔ pub-sub distributed streaming platform
➔ Smart consumers, dumb broker
➔ Grupo de consumidores - consumer group
➔ Partições - um consumidor por partição
➔ Garantia de pelo menos uma entrega
➔ Alta taxa de transferência
@fabiojose
Cluster Kafka
Kafka Bigpic
Tópico A
Tópico B
P1
P2
P4
P5
P6
Publishers Subscribers
Grupo de
ConsumoP2
P1
P3
Grupo de
Consumo
P4
P5
P6
P3
@fabiojose
Streams
Conjunto de dados ilimitados e
continuamente atualizados
@fabiojose
Kafka Streams
➔ Projetado para processamento near-real-time
➔ Fluxo contínuo de entradas, processamento e saída
➔ Validações, transformações, enriquecimentos, deduplicação
➔ Garantia de entrega
➔ Backpressure
➔ Gerenciamento de estado
@fabiojose
4.
Mão na massa
Lab com Kafka
@fabiojose
Ferramentas Necessárias
● Docker 18+
● Kafka 2+
● Docker Compose 1.15+
● Git CLI
● Microservices escritos com:
○ Java 8
○ Node 8
○ Dotnet Core 2
@fabiojose
Modelos de Solução Coreografada
Agregação Revezamento
Agregador
Event Bus
µService’
O Agregador determina se a transação
chegou ao fim com sucesso ou erro,
portanto ele conhece todos os eventos.
Event Bus
µService’
µService’’
µService’’’
µService’’
Cada µService é responsável por capturar
o evento anterior e emitir o próximo,
formando uma cadeia de responsabilidade
@fabiojose
Agregação vs. Revezamento
Agregação Revezamento
Componente Agregador de Eventos -
Execução Paralela Sequenciada
Compensação Relativamente complexa Relativamente simples
@fabiojose
Caso de Uso usando Agregação
Abrir uma conta
_ µService Contas recebe requisições HTTP
para criar contas e emite eventos
AccountCreated
_ Todos os outros µService: Fraude, Crédito,
Cartões e Poupança, estão aguardando esse
evento para iniciarem seus fluxos de negócio
_ Sem uma ordem definida os eventos
desses µServices chegarão ao SAGA
Agregador
Contas
Fraude
Crédito
Cartões
Poupança
SAGA
http
@fabiojose
Como tudo funciona
Contas
Fraude
Crédito
Cartões
Poupança
SAGA
http
_ µService Contas recebe o POST de uma conta
@fabiojose
Como tudo funciona
Contas
Fraude
Crédito
Cartões
Poupança
SAGA
http
_ µService Contas recebe o POST de uma conta
_ Contas processa e emite AccountCreated
@fabiojose
Como tudo funciona
Contas
Fraude
Crédito
Cartões
Poupança
SAGA
http
_ µService Contas recebe o POST de uma conta
_ Contas processa e emite AccountCreated
_ Todos os outros µServices estão com o fluxo
de eventos - stream - aberto no Kafka, inclusive
o SAGA
@fabiojose
Como tudo funciona
Contas
Fraude
Crédito
Cartões
Poupança
SAGA
http
_ µService Contas recebe o POST de uma conta
_ Contas processa e emite AccountCreated
_ Todos os outros µServices estão com o fluxo
de eventos - stream - aberto no Kafka, inclusive
o SAGA
_ Em uma ordem não-definida, os µServices
Fraude, Cartões, Crédito e Poupança reagem,
executando sua lógica quando identificam o
evento AccountCreated
@fabiojose
Como tudo funciona
Contas
Fraude
Crédito
Cartões
Poupança
SAGA
http
_ µService Contas recebe o POST de uma conta
_ Contas processa e emite AccountCreated
_ Todos os outros µServices estão com o fluxo
de eventos - stream - aberto no Kafka, inclusive
o SAGA
_ Em uma ordem não-definida, os µServices
Fraude, Cartões, Crédito e Poupança reagem,
executando sua lógica quando identificam o
evento AccountCreated
_ SAGA Agregador, responsável por interpretar
os eventos emitidos por cada µService e
determinar se a transação foi bem-sucedida
@fabiojose
Como tudo funciona
Contas
Fraude
Crédito
Cartões
Poupança
SAGA
http
_ Fraude emite FraudChecked
_ Credito emite CreditChecked
_ Cartões emite CardIssued
_ Popupança emite
SavingsAccountCreated
_ Caso a SAGA tenha finalizado com
sucesso, será emitido o evento
AccountOpened
@fabiojose
Vamos lá!
Talk is cheap
- Linus
@fabiojose
Obrigado!
Perguntas?
Me encontre em:
@fabiojose
Referências
● https://www.cs.cornell.edu/andru/cs711/2002fa/reading/sagas.pdf
● https://microservices.io/patterns/data/saga.html
● https://kafka.apache.org/20/documentation/streams/
● https://kafka.apache.org/intro.html
@fabiojose
Credits
Special thanks to all the people who made and released
these awesome resources for free:
✘ Presentation template by SlidesCarnival
✘ Photographs by Unsplash

Mais conteúdo relacionado

Mais procurados

Hybrid integration reference architecture
Hybrid integration reference architectureHybrid integration reference architecture
Hybrid integration reference architectureKim Clark
 
Microsoft Lending Reference Architecture
Microsoft Lending Reference ArchitectureMicrosoft Lending Reference Architecture
Microsoft Lending Reference ArchitectureMike Walker
 
The DevOps Journey
The DevOps JourneyThe DevOps Journey
The DevOps JourneyMicro Focus
 
Microservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaAraf Karsh Hamid
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native ApplicationEmiliano Pecis
 
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with SagasQCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with SagasChris Richardson
 
Intelligently Collecting Data at the Edge – Intro to Apache MiNiFi
Intelligently Collecting Data at the Edge – Intro to Apache MiNiFiIntelligently Collecting Data at the Edge – Intro to Apache MiNiFi
Intelligently Collecting Data at the Edge – Intro to Apache MiNiFiDataWorks Summit
 
100.RED HAT SINGLE SIGN-ON
100.RED HAT SINGLE SIGN-ON100.RED HAT SINGLE SIGN-ON
100.RED HAT SINGLE SIGN-ONOpennaru, inc.
 
Global Payment Reference Architecture
Global Payment Reference ArchitectureGlobal Payment Reference Architecture
Global Payment Reference ArchitectureRamadas MV
 
DevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best PracticesDevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best PracticesShiva Narayanaswamy
 
Contract Lifecycle Management
Contract Lifecycle Management Contract Lifecycle Management
Contract Lifecycle Management InnocenzoLippa
 
Microservices and Deployment Methodologies
Microservices and Deployment MethodologiesMicroservices and Deployment Methodologies
Microservices and Deployment MethodologiesYash Gupta
 
Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)WSO2
 
What is SSO? An introduction to Single Sign On
What is SSO? An introduction to Single Sign OnWhat is SSO? An introduction to Single Sign On
What is SSO? An introduction to Single Sign OnRiddhi Sood
 
Building Event Driven Systems
Building Event Driven SystemsBuilding Event Driven Systems
Building Event Driven SystemsWSO2
 
Testing strategy for RPA implementation
Testing strategy for RPA implementationTesting strategy for RPA implementation
Testing strategy for RPA implementationARJUN S MEDA
 

Mais procurados (20)

Hybrid integration reference architecture
Hybrid integration reference architectureHybrid integration reference architecture
Hybrid integration reference architecture
 
Microsoft Lending Reference Architecture
Microsoft Lending Reference ArchitectureMicrosoft Lending Reference Architecture
Microsoft Lending Reference Architecture
 
Introduction à la plateforme Anypoint de MuleSoft
Introduction à la plateforme Anypoint de MuleSoftIntroduction à la plateforme Anypoint de MuleSoft
Introduction à la plateforme Anypoint de MuleSoft
 
The DevOps Journey
The DevOps JourneyThe DevOps Journey
The DevOps Journey
 
Microservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and Saga
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application
 
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with SagasQCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
 
Intelligently Collecting Data at the Edge – Intro to Apache MiNiFi
Intelligently Collecting Data at the Edge – Intro to Apache MiNiFiIntelligently Collecting Data at the Edge – Intro to Apache MiNiFi
Intelligently Collecting Data at the Edge – Intro to Apache MiNiFi
 
Camunda BPM at bpmNEXT 2016
Camunda BPM at bpmNEXT 2016Camunda BPM at bpmNEXT 2016
Camunda BPM at bpmNEXT 2016
 
100.RED HAT SINGLE SIGN-ON
100.RED HAT SINGLE SIGN-ON100.RED HAT SINGLE SIGN-ON
100.RED HAT SINGLE SIGN-ON
 
The Service Desk Evolution
The Service Desk EvolutionThe Service Desk Evolution
The Service Desk Evolution
 
Global Payment Reference Architecture
Global Payment Reference ArchitectureGlobal Payment Reference Architecture
Global Payment Reference Architecture
 
DevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best PracticesDevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best Practices
 
Contract Lifecycle Management
Contract Lifecycle Management Contract Lifecycle Management
Contract Lifecycle Management
 
Microservices and Deployment Methodologies
Microservices and Deployment MethodologiesMicroservices and Deployment Methodologies
Microservices and Deployment Methodologies
 
Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)
 
What is SSO? An introduction to Single Sign On
What is SSO? An introduction to Single Sign OnWhat is SSO? An introduction to Single Sign On
What is SSO? An introduction to Single Sign On
 
Building Event Driven Systems
Building Event Driven SystemsBuilding Event Driven Systems
Building Event Driven Systems
 
Intorduction to Datapower
Intorduction to DatapowerIntorduction to Datapower
Intorduction to Datapower
 
Testing strategy for RPA implementation
Testing strategy for RPA implementationTesting strategy for RPA implementation
Testing strategy for RPA implementation
 

Semelhante a Event-driven SAGAs com Kafka

Construindo a NuConta
Construindo a NuContaConstruindo a NuConta
Construindo a NuContaNubank
 
Elytics - Construindo uma plataforma de big data
Elytics - Construindo uma plataforma de big data Elytics - Construindo uma plataforma de big data
Elytics - Construindo uma plataforma de big data Elo7
 
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de MicroservicesDeep Tech Brasil
 
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...Amazon Web Services
 
TDC2018SP | Trilha Arq .Net - Arquitetura Orientada a Eventos: Apresentacao e...
TDC2018SP | Trilha Arq .Net - Arquitetura Orientada a Eventos: Apresentacao e...TDC2018SP | Trilha Arq .Net - Arquitetura Orientada a Eventos: Apresentacao e...
TDC2018SP | Trilha Arq .Net - Arquitetura Orientada a Eventos: Apresentacao e...tdc-globalcode
 
Arquitetura orientada a eventos
Arquitetura orientada a eventosArquitetura orientada a eventos
Arquitetura orientada a eventosHeber Ortiz
 
WSO2 Novo Modelo de Subscrições e Produtos 2017
WSO2 Novo Modelo de Subscrições e Produtos 2017WSO2 Novo Modelo de Subscrições e Produtos 2017
WSO2 Novo Modelo de Subscrições e Produtos 2017Edgar Silva
 
Experiência da SulAmerica com Kafka -
Experiência da SulAmerica com Kafka - Experiência da SulAmerica com Kafka -
Experiência da SulAmerica com Kafka - Techrom Tecnologia
 
Migrando Aplicações legadas para o Microsoft Azure
Migrando Aplicações legadas para o Microsoft AzureMigrando Aplicações legadas para o Microsoft Azure
Migrando Aplicações legadas para o Microsoft AzureRafael Dos Santos
 
Como o iFood usou CQRS para escalar a contabilização de +30M de pedidos por m...
Como o iFood usou CQRS para escalar a contabilização de +30M de pedidos por m...Como o iFood usou CQRS para escalar a contabilização de +30M de pedidos por m...
Como o iFood usou CQRS para escalar a contabilização de +30M de pedidos por m...Danilo Pereira De Luca
 
Comet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - ResumoComet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - ResumoHanderson Frota
 
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)Wellington Silva
 
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...iMasters
 
CPBSB 2022 - Big Data e Machine Learning na Prática Construindo um Data Lake...
CPBSB 2022 - Big Data e  Machine Learning na Prática Construindo um Data Lake...CPBSB 2022 - Big Data e  Machine Learning na Prática Construindo um Data Lake...
CPBSB 2022 - Big Data e Machine Learning na Prática Construindo um Data Lake...Cicero Joasyo Mateus de Moura
 
Arquitetando uma instituição financeira moderna
Arquitetando uma instituição financeira modernaArquitetando uma instituição financeira moderna
Arquitetando uma instituição financeira modernaLucas Cavalcanti dos Santos
 
Arquitetando uma instituição financeira moderna - Lucas Cavalcanti
Arquitetando uma instituição financeira moderna - Lucas CavalcantiArquitetando uma instituição financeira moderna - Lucas Cavalcanti
Arquitetando uma instituição financeira moderna - Lucas CavalcantiiMasters
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 

Semelhante a Event-driven SAGAs com Kafka (20)

Construindo a NuConta
Construindo a NuContaConstruindo a NuConta
Construindo a NuConta
 
Event source com Kafka em uma Fintech
Event source com Kafka em uma FintechEvent source com Kafka em uma Fintech
Event source com Kafka em uma Fintech
 
Elytics - Construindo uma plataforma de big data
Elytics - Construindo uma plataforma de big data Elytics - Construindo uma plataforma de big data
Elytics - Construindo uma plataforma de big data
 
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
 
Folder nv data
Folder nv dataFolder nv data
Folder nv data
 
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...
 
TDC2018SP | Trilha Arq .Net - Arquitetura Orientada a Eventos: Apresentacao e...
TDC2018SP | Trilha Arq .Net - Arquitetura Orientada a Eventos: Apresentacao e...TDC2018SP | Trilha Arq .Net - Arquitetura Orientada a Eventos: Apresentacao e...
TDC2018SP | Trilha Arq .Net - Arquitetura Orientada a Eventos: Apresentacao e...
 
Arquitetura orientada a eventos
Arquitetura orientada a eventosArquitetura orientada a eventos
Arquitetura orientada a eventos
 
WSO2 Novo Modelo de Subscrições e Produtos 2017
WSO2 Novo Modelo de Subscrições e Produtos 2017WSO2 Novo Modelo de Subscrições e Produtos 2017
WSO2 Novo Modelo de Subscrições e Produtos 2017
 
Experiência da SulAmerica com Kafka -
Experiência da SulAmerica com Kafka - Experiência da SulAmerica com Kafka -
Experiência da SulAmerica com Kafka -
 
Migrando Aplicações legadas para o Microsoft Azure
Migrando Aplicações legadas para o Microsoft AzureMigrando Aplicações legadas para o Microsoft Azure
Migrando Aplicações legadas para o Microsoft Azure
 
Como o iFood usou CQRS para escalar a contabilização de +30M de pedidos por m...
Como o iFood usou CQRS para escalar a contabilização de +30M de pedidos por m...Como o iFood usou CQRS para escalar a contabilização de +30M de pedidos por m...
Como o iFood usou CQRS para escalar a contabilização de +30M de pedidos por m...
 
Comet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - ResumoComet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - Resumo
 
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
Contêineres e VMs no mundo dos E-commerces (Devcommerce2016)
 
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
 
CPBSB 2022 - Big Data e Machine Learning na Prática Construindo um Data Lake...
CPBSB 2022 - Big Data e  Machine Learning na Prática Construindo um Data Lake...CPBSB 2022 - Big Data e  Machine Learning na Prática Construindo um Data Lake...
CPBSB 2022 - Big Data e Machine Learning na Prática Construindo um Data Lake...
 
Arquitetando uma instituição financeira moderna
Arquitetando uma instituição financeira modernaArquitetando uma instituição financeira moderna
Arquitetando uma instituição financeira moderna
 
Arquitetando uma instituição financeira moderna - Lucas Cavalcanti
Arquitetando uma instituição financeira moderna - Lucas CavalcantiArquitetando uma instituição financeira moderna - Lucas Cavalcanti
Arquitetando uma instituição financeira moderna - Lucas Cavalcanti
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
Event sourcing
Event sourcingEvent sourcing
Event sourcing
 

Mais de Fábio José Moraes

Kafka 101 - Meetup Kafka BR - Oracle
Kafka 101 - Meetup Kafka BR - OracleKafka 101 - Meetup Kafka BR - Oracle
Kafka 101 - Meetup Kafka BR - OracleFábio José Moraes
 
Lições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviçosLições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviçosFábio José Moraes
 
Blockchain - Smart Contracts - Meetup
Blockchain - Smart Contracts - MeetupBlockchain - Smart Contracts - Meetup
Blockchain - Smart Contracts - MeetupFábio José Moraes
 
Meetup DevOps - Superestimando a Automação
Meetup DevOps - Superestimando a AutomaçãoMeetup DevOps - Superestimando a Automação
Meetup DevOps - Superestimando a AutomaçãoFábio José Moraes
 

Mais de Fábio José Moraes (6)

Kafka101 na Superdigital
Kafka101 na SuperdigitalKafka101 na Superdigital
Kafka101 na Superdigital
 
Kafka 101 - Meetup Kafka BR - Oracle
Kafka 101 - Meetup Kafka BR - OracleKafka 101 - Meetup Kafka BR - Oracle
Kafka 101 - Meetup Kafka BR - Oracle
 
Lições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviçosLições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviços
 
Blockchain - Smart Contracts - Meetup
Blockchain - Smart Contracts - MeetupBlockchain - Smart Contracts - Meetup
Blockchain - Smart Contracts - Meetup
 
Encet 2008-ajax java
Encet 2008-ajax javaEncet 2008-ajax java
Encet 2008-ajax java
 
Meetup DevOps - Superestimando a Automação
Meetup DevOps - Superestimando a AutomaçãoMeetup DevOps - Superestimando a Automação
Meetup DevOps - Superestimando a Automação
 

Event-driven SAGAs com Kafka