Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

Ao longo dos anos a arquitetura distribuída vem sendo amplamente adotada, por prover inúmeras vantagens como: manutenibilidade, heterogeneidade tecnológica, escalabilidade, desacoplamento, etc.

Nesse sentido, a arquitetura de microsserviços começa com uma abordagem inicial de dados. Inicialmente, um único banco de dados atende a todas as necessidades, porém com o passar do tempo os dados evoluem e suas necessidades também, necessitando de requisitos como: cache, search index e data warehouse.

Nesta palestra, iremos discorrer como a abordagem de CDC acompanha a evolução da arquitetura distribuída e seus dados, podendo reduzir drasticamente a complexidade de lidar com seus dados.

Ef3b48913ea26665c25b2ad78e449d16?s=128

Luram Archanjo

December 01, 2021
Tweet

Transcript

  1. Change Data Capture (CDC) libertando seus dados em sua Arquitetura

    Distribuída.
  2. Quem sou eu? TDC Luram Archanjo Software Expert @ Mercado

    Livre MBA em Projetos Java Entusiasta em Java e Microsserviços
  3. 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.
  4. Microsserviços

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

    Microsserviço
  6. • 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
  7. TDC Microsserviços - Onde estamos

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

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

  10. Por que gerenciar estado é difícil?

  11. 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
  12. Como solucionar esses problemas em uma Arquitetura Distribuída?

  13. 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
  14. TDC Acessando nossos dados 2/3 Microsserviço Microsserviço Microsserviço RESTFul API

    RESTFul API RESTFul API
  15. TDC Acessando nossos dados 3/3 Microsserviço Microsserviço Microsserviço RESTFul API

    RESTFul API RESTFul API API Gateway
  16. Quais são os trade-offs dessa abordagem?

  17. 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.
  18. Como implementar consultas que unem dados em uma Arquitetura Distribuída?

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

    Microsserviço RESTFul API RESTFul API RESTFul API API Composer
  20. TDC Data Visualization 2. Command Query Responsibility Segregation (CQRS) Microsserviço

    RESTFul API Persiste Command Consulta Query Sincroniza
  21. TDC Data Visualization Microsserviço Persiste Consulta Sincroniza

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

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

  24. TDC Data Visualization Microsserviço Domain Event Pattern Microsserviço Domain Event

    Pattern Microsserviço Domain Event Pattern View Service
  25. Eba! Resolvi meu problema de implementar consultas que unem dados!

  26. 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
  27. Conclusão! Muita complexidade!

  28. Como reduzir essa complexidade em minha Arquitetura?

  29. 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
  30. TDC Data Visualization Microsserviço Domain Event Pattern Controller Use case

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

    Persistence 1 2 3
  32. Change Data Capture (CDC) Pattern

  33. 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
  34. Capture changes (transactions logs) TDC Change Data Capture (CDC) Monitora,

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

  36. TDC Change Data Capture (CDC) Microsserviço Microsserviço Microsserviço View Service

    Domain Event Pattern Cache Service Integrated Service Data warehouse Caixa preta
  37. Conclusão! Evolua sua Arquitetura!

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