Slide 1

Slide 1 text

Change Data Capture (CDC) libertando seus dados em sua Arquitetura Distribuída.

Slide 2

Slide 2 text

Quem sou eu? TDC Luram Archanjo Software Expert @ Mercado Livre MBA em Projetos Java Entusiasta em Java e Microsserviços

Slide 3

Slide 3 text

Agenda TDC Microsserviço Manipulação de dados Propagação de dados 01. 02. 04. Conclusão 05. Visualização de dados 03. Questionamentos 06.

Slide 4

Slide 4 text

Microsserviços

Slide 5

Slide 5 text

Microsserviços TDC Feature A Feature B Feature C Microsserviço Microsserviço Microsserviço

Slide 6

Slide 6 text

● Baixo acoplamento ● Organizado em torno de recursos de negócios ● Altamente sustentável e testável ● Escalar times / negócios ○ Serviços autônomos ○ Independentemente implantável ○ Time to Market ○ Lead Time TDC Microsserviços - Recapitulando

Slide 7

Slide 7 text

TDC Microsserviços - Onde estamos

Slide 8

Slide 8 text

Quais são os grandes desafios de uma Arquitetura distribuída?

Slide 9

Slide 9 text

Behavior Is ‘Easy’, State Is Hard - Edson Yanaga

Slide 10

Slide 10 text

Por que gerenciar estado é difícil?

Slide 11

Slide 11 text

TDC Por que gerenciar estado é difícil? 1. Os serviços devem ser fracamente acoplados para que possam ser desenvolvidos, implantados e escalados de forma independente 2. Diferentes serviços têm diferentes requisitos de armazenamento de dados. 3. Os bancos de dados às vezes devem ser replicados e fragmentados para escalar

Slide 12

Slide 12 text

Como solucionar esses problemas em uma Arquitetura Distribuída?

Slide 13

Slide 13 text

TDC Acessando nossos dados 1/3 Somos "forçados" a manter nossos dados persistentes de cada Microsserviço privados para esse serviço e acessíveis apenas por meio de sua API. As transações de um serviço envolvem apenas seu banco de dados. Microsserviço Microsserviço Microsserviço

Slide 14

Slide 14 text

TDC Acessando nossos dados 2/3 Microsserviço Microsserviço Microsserviço RESTFul API RESTFul API RESTFul API

Slide 15

Slide 15 text

TDC Acessando nossos dados 3/3 Microsserviço Microsserviço Microsserviço RESTFul API RESTFul API RESTFul API API Gateway

Slide 16

Slide 16 text

Quais são os trade-offs dessa abordagem?

Slide 17

Slide 17 text

TDC Quais são os trade-offs dessa abordagem? 1. Transação distribuída (Saga Pattern - Orquestrado / Coreografado) 2. Complexidade de gerenciamento de vários bancos de dados SQL e NoSQL 3. A implementação de consultas que unem dados que agora estão em vários bancos de dados é um desafio.

Slide 18

Slide 18 text

Como implementar consultas que unem dados em uma Arquitetura Distribuída?

Slide 19

Slide 19 text

TDC Data Visualization 1. API Composition Pattern (GraphQL) Microsserviço Microsserviço Microsserviço RESTFul API RESTFul API RESTFul API API Composer

Slide 20

Slide 20 text

TDC Data Visualization 2. Command Query Responsibility Segregation (CQRS) Microsserviço RESTFul API Persiste Command Consulta Query Sincroniza

Slide 21

Slide 21 text

TDC Data Visualization Microsserviço Persiste Consulta Sincroniza

Slide 22

Slide 22 text

TDC Domain Event Pattern Microsserviço Persiste Consulta PagamentoFinalizado PagamentoAgendado PagamentoCancelado

Slide 23

Slide 23 text

TDC Transporte da mensagem Microsserviço Persiste Consulta Domain Event Pattern

Slide 24

Slide 24 text

TDC Data Visualization Microsserviço Domain Event Pattern Microsserviço Domain Event Pattern Microsserviço Domain Event Pattern View Service

Slide 25

Slide 25 text

Eba! Resolvi meu problema de implementar consultas que unem dados!

Slide 26

Slide 26 text

TDC Data Visualization 1. Data base per service a. Saga Pattern i. Orquestrado ii. Coreografado 2. API Gateway a. RESTFul b. Security 3. Command Query Responsibility Segregation (CQRS) a. Domain Events b. Event Driven Architecture

Slide 27

Slide 27 text

Conclusão! Muita complexidade!

Slide 28

Slide 28 text

Como reduzir essa complexidade em minha Arquitetura?

Slide 29

Slide 29 text

TDC Data Visualization 1. Data base per service a. Saga Pattern i. Orquestrado ii. Coreografado 2. API Gateway a. RESTFul b. Security 3. Command Query Responsibility Segregation (CQRS) a. Domain Events b. Event Driven Architecture 4. Service View Data Propagation

Slide 30

Slide 30 text

TDC Data Visualization Microsserviço Domain Event Pattern Controller Use case Persistence 1 2 3 4 5

Slide 31

Slide 31 text

TDC Data Visualization Microsserviço Domain Event Pattern Controller Use case Persistence 1 2 3

Slide 32

Slide 32 text

Change Data Capture (CDC) Pattern

Slide 33

Slide 33 text

TDC Change Data Capture (CDC) Change Data Capture (CDC) é um conjunto de padrões de design de software usado para determinar e rastrear os dados que foram alterados para que uma ação possa ser realizada usando os dados alterados. O CDC é uma abordagem de integração de dados que se baseia na identificação, captura e entrega das alterações feitas nas fontes de dados. Fonte de dados ETL ELT Streaming Data Visualization Destino do dado

Slide 34

Slide 34 text

Capture changes (transactions logs) TDC Change Data Capture (CDC) Monitora, captura, pública Monitors Publish changes

Slide 35

Slide 35 text

TDC Change Data Capture (CDC) Monitora, captura, pública

Slide 36

Slide 36 text

TDC Change Data Capture (CDC) Microsserviço Microsserviço Microsserviço View Service Domain Event Pattern Cache Service Integrated Service Data warehouse Caixa preta

Slide 37

Slide 37 text

Conclusão! Evolua sua Arquitetura!

Slide 38

Slide 38 text

Muito obrigado! Questionamentos? TDC Luram Archanjo /luram-archanjo