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

Escala e Consistência: Como processar mais de 1...

Escala e Consistência: Como processar mais de 1 milhão de registros em poucas horas via Devconf(Opensanca)

Leonardo Reis e Victor Nunes, trocaram experiências e relatos como lidam na Arquivei sobre Escala e Consistência para mais de 1M de registros.

Sinopse:

Arquivei, empresa que tem como produto uma plataforma web de gestão de Documentos Fiscais eletrônicos (DFes), propõe a facilitação do acesso aos DFes e às diversas informações contidas neles.

No último ano, cerca de 13% de todos os documentos ficais emitidos no Brasil trafegaram no sistema da Arquivei, gerando um grande desafio relacionado a escalabilidade e consistência de dados.

Durante esse encontro, será apresentando como a gestão e processamento de dados da Arquivei evoluiu nos últimos anos: é possível processar milhões de registros, disponibilizar dados em tempo real, criar uma fonte única de verdade e garantir consistência essa fonte e os bancos analíticos e de busca.

Opensanca

May 27, 2023
Tweet

More Decks by Opensanca

Other Decks in Programming

Transcript

  1. Agenda 4. Pontos de melhoria 5. Nova arquitetura e suas

    características 6. Desafios enfrentados 1. O que é a Arquivei? 2. Evolução da arquitetura 3. Motivadores de mudança
  2. Mais de 420 mil CNPJs ativos Escala e Consistência: Como

    processar mais de 1 milhão de registros em poucas horas
  3. 3.8 bilhões de documentos fiscais armazenados Escala e Consistência: Como

    processar mais de 1 milhão de registros em poucas horas 2 bilhões de Nota Fiscal Eletrônica - NFe 1.3 bilhões de Conhecimento de Transporte Eletrônico - CTe 600 milhões de Cupons Fiscais Eletrônicos - NFCe e CFe-SAT 60 milhões de Nota Fiscal de Serviço - NFSe *em 2020 aproximadamente 13% dos documentos emitidos no Brasil trafegaram pelo sistema da Arquivei. ** nesta apresentação iremos falar somente da arquitetura de processamento de Conhecimento de Transporte Eletrônico (CTe). A partir de agora o termo “documento fiscal” refere-se a este tipo de documento.
  4. Tecnologias que utilizamos Escala e Consistência: Como processar mais de

    1 milhão de registros em poucas horas ElasticSearch - 3 clusters Bigtable - 20 TB BigQuery - 85TB Kubernetes Kafka Dataflow Golang Apache Beam
  5. Primeira geração Escala e Consistência: Como processar mais de 1

    milhão de registros em poucas horas - MVP
  6. Segunda geração Escala e Consistência: Como processar mais de 1

    milhão de registros em poucas horas - Diversos bancos de dados
  7. Segunda geração Escala e Consistência: Como processar mais de 1

    milhão de registros em poucas horas - Diversos bancos de dados Ótimo para armazenar objetos grandes Solução específica para clientes grandes fazerem buscas textuais
  8. Terceira geração Escala e Consistência: Como processar mais de 1

    milhão de registros em poucas horas - Micro-serviços
  9. Terceira geração Escala e Consistência: Como processar mais de 1

    milhão de registros em poucas horas - Micro-serviços Ótimo para filtros e buscas textuais Ótimo para análises pesadas Mensageria com partições ordenadas
  10. Escala e Consistência: Como processar mais de 1 milhão de

    registros em poucas horas - Fonte de verdade Quarta geração
  11. Escala e Consistência: Como processar mais de 1 milhão de

    registros em poucas horas - Fonte de verdade Time tinha domínio, nunca tinha trabalhado com kafka Quarta geração
  12. Escala e Consistência: Como processar mais de 1 milhão de

    registros em poucas horas Pontos de atenção Alta volumetria Falta de garantia de ordem Falta de consistência entre os bancos Impossibilidade de escalar horizontalmente Custo do banco de busca Tentativas de melhoria observadas Pubsub ordenado Implementação de lock utilizando banco em memória Pipeline para migração no snapshot do Postgres Solução Migração para uma nova arquitetura Construção de uma plataforma de processamento de dados Motivadores de mudança
  13. Escala e Consistência: Como processar mais de 1 milhão de

    registros em poucas horas Custo Redução do custo do banco de busca Redução do custo com o armazenamento de dados de negócio Arquitetura Desacoplamento dos workers Processamento ordenado Escalabilidade horizontal Banco de dados principal centralizado Real-time Estrutura dos dados Compressão dos dados Contratos para transmissão dos dados entre os micro serviços Contratos para armazenamento dos dados Pontos de melhoria
  14. Quinta geração Escala e Consistência: Como processar mais de 1

    milhão de registros em poucas horas - Plataforma
  15. Quinta geração Escala e Consistência: Como processar mais de 1

    milhão de registros em poucas horas - Plataforma Ideal para armazenar grandes volumes de dados de chave única indexada com baixa latência. Change data capture
  16. Custo Banco de busca mais barato (payback da migração foi

    de 3 meses) Compressão dos dados Arquitetura CQRS (Command Query Responsability Segregation) → APIs sync e async Garantia de ordem → Kafka Escalabilidade horizontal Escrita atômica → transação única no Bigtable Geração de CDC - Change Data Capture Consistência entre os bancos → ElasticSearch, Bigtable e Data warehouse Libertação dos dados para diferentes casos de uso que surgirem → dados em real time Escala e Consistência: Como processar mais de 1 milhão de registros em poucas horas Nova arquitetura e suas características
  17. Escala e Consistência: Como processar mais de 1 milhão de

    registros em poucas horas Migração de dados sem impactos Continuous migration → 6 meses Não gerar impacto nos clientes → sem downtime Volumetria Taxa de processamento: ~1M por dia Migração: ~1.8 bilhões em poucas horas Gerenciamento do projeto Três departamentos Entregas simultâneas Plano de migração Desafios enfrentados