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)
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
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;
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 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;
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;