SlideShare uma empresa Scribd logo
Kafka na modernização de sistemas Bancários1
Kafka na modernização
de Sistemas Bancários
2 Kafka na modernização de sistemas Bancários
Quem sou eu ?
João Paulo Binda Delboni
Capixaba, morando em São Paulo a 3 anos. Sou
Arquiteto de Solução no banco Itaú, e nos últimos 2
anos venho atuando na comunidade de Contas e
Tarifas no time de Modernização do Legado
3 Kafka na modernização de sistemas Bancários
01.142-3 SALDO R$ 232
01.233-1 SALDO R$ 109
01.531-9 SALDO R$ -201
01.541-5 SALDO R$ 330
02.531-0 SALDO R$ 340
02.251-2 SALDO R$ 1342
02.537-6 SALDO R$ 322
02.133-4 SALDO R$ -100
Como o sistema bancário funcionava na década de 80 ?
01.142-3 PAG TIT 1234 R$ 32,43
01.233-1 CRED SALARIO R$ 1039,00
01.531-9 REND APLIC. R$ 1,01
01.541-5 DEP. CHEQ. R$ 30,01
02.531-0 DEP. CHEQ. R$ 30,01
02.251-2 PAG TIT 1434 R$ 12,32
02.537-6 REND APLIC. R$ 2,30
02.133-4 CRED SALARIO R$ 1339,00
01
02
4 Kafka na modernização de sistemas Bancários
Como a evolução aconteceu ?
01.142-3 SALDO R
01.142-3 SALDO R
01.142-3 SALDO R
R$ -32,43
R$ -10,00
CAFÉ MANIA R$ 30,01
R$ 1039,00
01
01.531-9 RECEB JBOSCO R$ 30,00
5 Kafka na modernização de sistemas Bancários
Modelos de Comunicação - Síncrono
Request
Response
Conexão
6 Kafka na modernização de sistemas Bancários
Modelos de Comunicação - Assíncrono
Request
Response
1
7 Kafka na modernização de sistemas Bancários
Modelo de Orquestração
Request
Response
Conexão
Envie a
mensagem
8 Kafka na modernização de sistemas Bancários
Modelo de Coreografia
Request
Response
1
Solicitaram
uma
compra
Kafka na modernização de sistemas Bancários9
Apache Kafka
A distributed streaming platform
10 Kafka na modernização de sistemas Bancários
O que define uma plataforma de Streaming ?
• Permite publicar e consumir mensagens de forma similar a um Message
Queue e um Enterprise Message System;
• Armazena as mensagens em uma persistência tolerante a falhas de
forma durável;
• Processa Streams de mensagens conforme elas acontecem;
Introduction to Apache Kafka
(https://kafka.apache.org/intro)
11 Kafka na modernização de sistemas Bancários
Conhecendo Conceitos: Tópicos
0 1 2 3 4 5 6 7 8 9
Antigo Novo
Producer
Consumer A
(offset 5)
Consumer B
(offset 7)
13 Kafka na modernização de sistemas Bancários
Conhecendo Conceitos: Partições
0 1 2 3 4 5 6 7 8 9
Antigo Novo
Producer
Partição 2
0 1 2 3 4 5 6Partição 1
0 1 2 3 4 5 6 7 8Partição 0
14 Kafka na modernização de sistemas Bancários
Conhecendo Conceitos: Cluster, Nós e Replicação
Broker 1
Tópico 1
P1
0 1 2 3 4 5 6 7P0
0 1 2 3 4 5 6
Tópico 2
P1
0 1 2 3 4 5 6 7P0
0 1 2 3 4 5 6
P2 0 1 2 3 4 5 6
15 Kafka na modernização de sistemas Bancários
Conhecendo Conceitos: Cluster, Nós e Replicação
Broker 1
Tópico 1
0 1 2 3 4 5 6 7P0
Tópico 2
P1 0 1 2 3 4 5 6
P2 0 1 2 3 4 5 6
Broker 2
Tópico 1
P1 0 1 2 3 4 5 6
Tópico 2
0 1 2 3 4 5 6 7P0
Cluster
16 Kafka na modernização de sistemas Bancários
Conhecendo Conceitos: Cluster, Nós e Replicação
0 1 2 3 4 5 6 7 8 9
Antigo Novo
Producer
Partição 2
Broker 2 🏅
0 1 2 3 4 5 6Partição 1
Broker 1 🏅
0 1 2 3 4 5 6 7 8Partição 0
Broker 2 🏅
0 1 2 3 4 5 6 7 8 9Partição 2
Broker 1
0 1 2 3 4 5 6Partição 1
Broker 2
0 1 2 3 4 5 6 7 8Partição 0
Broker 1
18 Kafka na modernização de sistemas Bancários
Conhecendo Conceitos: Consumer Group
19 Kafka na modernização de sistemas Bancários
Conhecendo Conceitos: Consumer Group
0 1 2 3 4 5 6 7 8 9
Antigo Novo
Partição 2
0 1 2 3 4 5 6Partição 1
0 1 2 3 4 5 6 7 8Partição 0
Kafka Cluster
Consumer Group: notificador
Partição Offset Instancia
0 7 Inst-A
1 4 Inst-B
2 6 Inst-A
Consumer Group: Notificador
Inst-A
Inst-B
20 Kafka na modernização de sistemas Bancários
Conhecendo Conceitos: Consumer Group
0 1 2 3 4 5 6 7 8 9
Antigo Novo
Partição 2
0 1 2 3 4 5 6Partição 1
0 1 2 3 4 5 6 7 8Partição 0
Kafka Cluster
Consumer Group: notificador
Partição Offset Instancia
0 7 Inst-A
1 4 Inst-A
2 6 Inst-A
Consumer Group: Notificador
Inst-A
Consumer Group: Processador
Inst-B
Consumer Group: processador
Partição Offset Instancia
0 5 Inst-B
1 5 Inst-B
2 8 Inst-B
22 Kafka na modernização de sistemas Bancários
Hands-On
– Subindo uma instância de Kafka
usando docker;
– Produzindo mensagens usando
Spring Kafka e Kafka Template;
– Consumindo mensagens usando
Spring Kafka e KafkaListener;
• Serializadores e
Deserializadores;
– Consumer Groups em Ação;
Repositório no GitHub
Kafka na modernização de sistemas Bancários23
Muito Obrigado
Dúvidas e sugestões ?
https://www.linkedin.com/in/jo%C3%A3o-paulo-binda-delboni-8a354933/

Mais conteúdo relacionado

Semelhante a Kafka na modernização de sistemas bancários

Cnr240
Cnr240Cnr240
Blockchain Day RJ
Blockchain Day RJBlockchain Day RJ
Blockchain Day RJ
Jonathan Baraldi
 
Tendências Tecnológicas em processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em processadores, por Luiz Carlos OrsoniTendências Tecnológicas em processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em processadores, por Luiz Carlos Orsoni
Joao Galdino Mello de Souza
 
controle de banda
controle de bandacontrole de banda
controle de banda
André Silva
 
Gerência de redes utilizando o cacti
Gerência de redes utilizando o cactiGerência de redes utilizando o cacti
Gerência de redes utilizando o cacti
IsraelCunha
 
Manual de orientacao
Manual de orientacaoManual de orientacao
Manual de orientacao
Fernando Machado W
 

Semelhante a Kafka na modernização de sistemas bancários (6)

Cnr240
Cnr240Cnr240
Cnr240
 
Blockchain Day RJ
Blockchain Day RJBlockchain Day RJ
Blockchain Day RJ
 
Tendências Tecnológicas em processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em processadores, por Luiz Carlos OrsoniTendências Tecnológicas em processadores, por Luiz Carlos Orsoni
Tendências Tecnológicas em processadores, por Luiz Carlos Orsoni
 
controle de banda
controle de bandacontrole de banda
controle de banda
 
Gerência de redes utilizando o cacti
Gerência de redes utilizando o cactiGerência de redes utilizando o cacti
Gerência de redes utilizando o cacti
 
Manual de orientacao
Manual de orientacaoManual de orientacao
Manual de orientacao
 

Último

Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 

Último (7)

Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 

Kafka na modernização de sistemas bancários

  • 1. Kafka na modernização de sistemas Bancários1 Kafka na modernização de Sistemas Bancários
  • 2. 2 Kafka na modernização de sistemas Bancários Quem sou eu ? João Paulo Binda Delboni Capixaba, morando em São Paulo a 3 anos. Sou Arquiteto de Solução no banco Itaú, e nos últimos 2 anos venho atuando na comunidade de Contas e Tarifas no time de Modernização do Legado
  • 3. 3 Kafka na modernização de sistemas Bancários 01.142-3 SALDO R$ 232 01.233-1 SALDO R$ 109 01.531-9 SALDO R$ -201 01.541-5 SALDO R$ 330 02.531-0 SALDO R$ 340 02.251-2 SALDO R$ 1342 02.537-6 SALDO R$ 322 02.133-4 SALDO R$ -100 Como o sistema bancário funcionava na década de 80 ? 01.142-3 PAG TIT 1234 R$ 32,43 01.233-1 CRED SALARIO R$ 1039,00 01.531-9 REND APLIC. R$ 1,01 01.541-5 DEP. CHEQ. R$ 30,01 02.531-0 DEP. CHEQ. R$ 30,01 02.251-2 PAG TIT 1434 R$ 12,32 02.537-6 REND APLIC. R$ 2,30 02.133-4 CRED SALARIO R$ 1339,00 01 02
  • 4. 4 Kafka na modernização de sistemas Bancários Como a evolução aconteceu ? 01.142-3 SALDO R 01.142-3 SALDO R 01.142-3 SALDO R R$ -32,43 R$ -10,00 CAFÉ MANIA R$ 30,01 R$ 1039,00 01 01.531-9 RECEB JBOSCO R$ 30,00
  • 5. 5 Kafka na modernização de sistemas Bancários Modelos de Comunicação - Síncrono Request Response Conexão
  • 6. 6 Kafka na modernização de sistemas Bancários Modelos de Comunicação - Assíncrono Request Response 1
  • 7. 7 Kafka na modernização de sistemas Bancários Modelo de Orquestração Request Response Conexão Envie a mensagem
  • 8. 8 Kafka na modernização de sistemas Bancários Modelo de Coreografia Request Response 1 Solicitaram uma compra
  • 9. Kafka na modernização de sistemas Bancários9 Apache Kafka A distributed streaming platform
  • 10. 10 Kafka na modernização de sistemas Bancários O que define uma plataforma de Streaming ? • Permite publicar e consumir mensagens de forma similar a um Message Queue e um Enterprise Message System; • Armazena as mensagens em uma persistência tolerante a falhas de forma durável; • Processa Streams de mensagens conforme elas acontecem; Introduction to Apache Kafka (https://kafka.apache.org/intro)
  • 11. 11 Kafka na modernização de sistemas Bancários Conhecendo Conceitos: Tópicos 0 1 2 3 4 5 6 7 8 9 Antigo Novo Producer Consumer A (offset 5) Consumer B (offset 7)
  • 12. 13 Kafka na modernização de sistemas Bancários Conhecendo Conceitos: Partições 0 1 2 3 4 5 6 7 8 9 Antigo Novo Producer Partição 2 0 1 2 3 4 5 6Partição 1 0 1 2 3 4 5 6 7 8Partição 0
  • 13. 14 Kafka na modernização de sistemas Bancários Conhecendo Conceitos: Cluster, Nós e Replicação Broker 1 Tópico 1 P1 0 1 2 3 4 5 6 7P0 0 1 2 3 4 5 6 Tópico 2 P1 0 1 2 3 4 5 6 7P0 0 1 2 3 4 5 6 P2 0 1 2 3 4 5 6
  • 14. 15 Kafka na modernização de sistemas Bancários Conhecendo Conceitos: Cluster, Nós e Replicação Broker 1 Tópico 1 0 1 2 3 4 5 6 7P0 Tópico 2 P1 0 1 2 3 4 5 6 P2 0 1 2 3 4 5 6 Broker 2 Tópico 1 P1 0 1 2 3 4 5 6 Tópico 2 0 1 2 3 4 5 6 7P0 Cluster
  • 15. 16 Kafka na modernização de sistemas Bancários Conhecendo Conceitos: Cluster, Nós e Replicação 0 1 2 3 4 5 6 7 8 9 Antigo Novo Producer Partição 2 Broker 2 🏅 0 1 2 3 4 5 6Partição 1 Broker 1 🏅 0 1 2 3 4 5 6 7 8Partição 0 Broker 2 🏅 0 1 2 3 4 5 6 7 8 9Partição 2 Broker 1 0 1 2 3 4 5 6Partição 1 Broker 2 0 1 2 3 4 5 6 7 8Partição 0 Broker 1
  • 16. 18 Kafka na modernização de sistemas Bancários Conhecendo Conceitos: Consumer Group
  • 17. 19 Kafka na modernização de sistemas Bancários Conhecendo Conceitos: Consumer Group 0 1 2 3 4 5 6 7 8 9 Antigo Novo Partição 2 0 1 2 3 4 5 6Partição 1 0 1 2 3 4 5 6 7 8Partição 0 Kafka Cluster Consumer Group: notificador Partição Offset Instancia 0 7 Inst-A 1 4 Inst-B 2 6 Inst-A Consumer Group: Notificador Inst-A Inst-B
  • 18. 20 Kafka na modernização de sistemas Bancários Conhecendo Conceitos: Consumer Group 0 1 2 3 4 5 6 7 8 9 Antigo Novo Partição 2 0 1 2 3 4 5 6Partição 1 0 1 2 3 4 5 6 7 8Partição 0 Kafka Cluster Consumer Group: notificador Partição Offset Instancia 0 7 Inst-A 1 4 Inst-A 2 6 Inst-A Consumer Group: Notificador Inst-A Consumer Group: Processador Inst-B Consumer Group: processador Partição Offset Instancia 0 5 Inst-B 1 5 Inst-B 2 8 Inst-B
  • 19. 22 Kafka na modernização de sistemas Bancários Hands-On – Subindo uma instância de Kafka usando docker; – Produzindo mensagens usando Spring Kafka e Kafka Template; – Consumindo mensagens usando Spring Kafka e KafkaListener; • Serializadores e Deserializadores; – Consumer Groups em Ação; Repositório no GitHub
  • 20. Kafka na modernização de sistemas Bancários23 Muito Obrigado Dúvidas e sugestões ? https://www.linkedin.com/in/jo%C3%A3o-paulo-binda-delboni-8a354933/

Notas do Editor

  1. Tópico é o canal por onde as mensagens de uma mesma “categoria” fluem. Cada mensagem recebe um identificador sequencial único chamado de Offset; Cada mensagem possui uma Chave, seu valor e um timestamp; Todas as mensagens são armazenadas de forma persistente, independente de serem consumidas ou não; Cada partição é uma sequencia ordenada e imutável de mensagens; Um tópico pode ter nenhum, um ou vários consumidores. Um tópico é dividido em múltiplas partições; As partições são distribuídas através do cluster; O número de consumidores não influencia o volume de mensagens armazenadas;
  2. Cada instância que compõe o Cluster é chamada de Nó; As partições são distribuídas através dos nós do cluster, de forma balanceada;
  3. O Kafka suporta execução em um ou mais servidores; Cada instância que compõe o Cluster é chamada de Nó; As partições são distribuídas através dos nós do cluster, de forma balanceada;
  4. O metadado do tópico define a quantidade de réplicas que cada partição terá; Para cada partição replicada, uma das réplicas é eleita como líder; O processo de replicação de partições é realizado de forma assíncrona; O produtor pode solicitar a confirmação de gravação de nenhuma, uma ou mais réplicas da mensagem;
  5. O Kafka suporta execução em um ou mais servidores; Cada instância que compõe o Cluster é chamada de Nó; As partições são distribuídas através dos nós do cluster, de forma balanceada; O metadado do tópico define a quantidade de réplicas que cada partição terá; Para cada partição replicada, uma das réplicas é eleita como líder; O processo de replicação de partições é realizado de forma assíncrona; O produtor pode solicitar a confirmação de gravação de nenhuma, uma ou mais réplicas da mensagem;