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

ETL Orientado a Eventos

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

ETL Orientado a Eventos

Como construir pipelines de ETL orientados a eventos: ingestão, transformação e carga de dados de forma assíncrona e escalável usando mensageria e serverless. Apresentado por Flávio Pimenta.

Avatar for Flávio Pimenta

Flávio Pimenta PRO

September 11, 2026

More Decks by Flávio Pimenta

Other Decks in Technology

Transcript

  1. Agenda • Caso de uso: o problema! • Overview sobre

    arquitetura de eventos • Arquitetura proposta • Abordagem dos casos de teste
  2. Desejo do cliente: Desenvolver um processo de atualização de dados

    para o novo sistema de CRM que está entrando em produção com apenas 3 passos! 01 Extração 02 Envio 03 Consulta Status
  3. Premissas • Uso de entidades “genéricas” • Dependência entre os

    envios ao SalesForce • Menor custo de infraestrutura e manutenção • Uso de serviços gerenciados da AWS • Nenhuma transformação e dados
  4. Top 10 Strategic Technology Trends for 2018. “By 2020, event-sourced,

    realtime situational awareness will be a required characteristic for 80% of digital business solutions, and 80% of new business ecosystems will require support for event processing.”
  5. O que é um evento? TDC é um evento :p

    Em Arquitetura, um evento está relacionado à ações que geram mudança de estado e que afetam o negócio.
  6. Desejo do cliente: Desenvolver um processo de atualização de dados

    para o novo sistema de CRM que está entrando em produção com apenas 3 passos! 01 Extração 02 Envio 03 Consulta Status
  7. Arquitetura: Extração Características: • Ler de várias origens • Gravar

    em formato csv (requisito da API do SalesForce) • Limite de registros/tamanho por arquivo • Paginação • Execução paralelizada Texto
  8. Arquitetura: Envio Características: • Inicia com um evento indicando que

    há um arquivo novo • Dependência de entidades • Garantir entrega • Execução paralelizada, respeitando dependências Texto
  9. Arquitetura: Status Características: • Inicia com um evento contendo o

    lote de jobs a ser verificado • Busca status de cada job no SalesForce (API) usando “pooling” • Quando job possui status de concluído grava resultado. Texto
  10. Arquitetura: Controle Características: • Gera identificador do lote • Dispara

    mensagem que originará os envios • Dispara mensagem para a função de controle • Execução agendada Texto
  11. Tecnologias • Banco de dados relacional (engine PostgreSQL) • Linguagem:

    Python • File Storage com suporte a eventos (S3) • Serverless (lambda) • Custo: Menos de USD 1.00 / mês
  12. Testes unitários Como fazer um teste de unidade quando eu

    uso um serviço Cloud? Resposta: Use Mock!
  13. Testes de serviço Necessidade de escrever código integrando os serviços

    cloud para validar o uso dos mesmos. Exemplo: extração paginada. • Executo o método principal da classe de Extração com uma massa de dados de 10 registros e paginação = 3 registros/página • Espero 4 arquivos gerados sendo que 3 possuem 3 registros e 1 possui apenas 1 registro
  14. Testes End to End Como a “timeline” de execução é

    totalmente imprevisível, a única estratégia que adotamos até o momento foi a ideia de implementar “pooling” e verificar o status de cada etapa até que a verificação seja feita e o teste possa prosseguir.