SlideShare uma empresa Scribd logo
1 de 20
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

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 OrsoniJoao Galdino Mello de Souza
 
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 cactiIsraelCunha
 

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
 

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;