Pro Yearly is on sale from $80 to $50! »

Arquitetura de eventos consistente em sistemas distribuídos - André Missaglia

B2519015997dff04abe2568ebb2cf729?s=47 opensanca
October 24, 2018

Arquitetura de eventos consistente em sistemas distribuídos - André Missaglia

Manter diferentes sistemas, geradores e/ou produtores de dados, com informações sincronizadas e consistentes representa um grande desafio. Nesta palestra, vamos falar da evolução da nossa arquitetura de eventos, técnicas usadas e as dificuldades encontradas no processo.

B2519015997dff04abe2568ebb2cf729?s=128

opensanca

October 24, 2018
Tweet

Transcript

  1. Arquitetura de eventos consistente em sistemas distribuídos (Kafka) André Badawi

    Missaglia Data Engineer @ Arquivei
  2. Roadmap 1. Contextualização e Arquitetura 2. Kafka 3. Demonstração

  3. André Badawi Missaglia Data Engineer @ Arquivei

  4. Roadmap 1. Contextualização e Arquitetura 2. Kafka 3. Demonstração

  5. None
  6. Arquitetura de eventos Service 1 DB 1 DB 2 System

    6 System 7 System 5 System 4 System 2 System 1 System 3 Service 2 Service 2
  7. Arquitetura de eventos Service 1 DB 1 DB 2 System

    6 System 7 System 5 System 4 System 2 System 1 System 3 Service 2 Service 2
  8. Arquitetura de eventos Gerenciamento de contas Discador de vendas Criação

    de Conta: Em “2018-01-01 14:20:00” a conta 2458 foi criada { “type”: “account-was-created” , “id”: 2458 “createdAt”: “2018-01-01T14:20:00” } Event Notification: Tipos de eventos: • Event Notification • Event-Carried State Transfer • Event Sourcing
  9. Arquitetura de eventos Gerenciamento de contas Discador de vendas Criação

    de Conta: { “type”: “account-was-created” , “id”: 2458 “createdAt”: “2018-01-01T14:20:00” “phone”: “(16) 98765-4321” “address”: “...” “email”: “...” } Event-Carried State Transfer: Tipos de eventos: • Event Notification • Event-Carried State Transfer • Event Sourcing
  10. Arquitetura de eventos DB 1 DB 2 System 1 System

    2 Event
  11. Arquitetura lambda

  12. Arquitetura de 3 camadas Frontend Backend Database

  13. Replicação em banco de dados Follower Leader UPDATE account SET

    email=’a@a.com’ WHERE id=5 Em “2018-01-01 14:20:00” a conta 5 mudou o endereço para a@a.com
  14. Dualidade Log / Tabela (Event sourcing)

  15. Arquitetura Kappa Novos dados Fila de eventos Database 1 Database

    2
  16. None
  17. Roadmap 1. Contextualização e Arquitetura 2. Kafka 3. Demonstração

  18. Kafka Principais usos: • Como sistema de mensagens ◦ Publish-subscribe

    ◦ Filas • Como sistema de armazenamento ◦ Event sourcing
  19. Kafka

  20. Estrutura de um tópico • Leituras e escritas sequenciais •

    Retenção ◦ Por tempo (ex.: 7 dias) ◦ Por tamanho (ex.: 1 Gb) • Offsets são gerenciados pelo kafka • Consumidor deve commitar o offset após ler a mensagem com sucesso • Reprocessamento é feito alterando o offset
  21. Paralelismo • Não é possível garantir a ordem de processamento

    com apenas 1 fila.
  22. Partições • Um tópico possui várias partições • É possível

    produzir / consumir em múltiplas partições
  23. Replicação

  24. E muito mais... • Compactação de logs • Compressão •

    Criptografia, autenticação, regras de acesso • Zookeeper • High watermark • Acknowledgements • Idempotência • Kafka Streams • Kafka Connect • Schema Registry
  25. Batch + Stream unificados

  26. Roadmap 1. Contextualização e Arquitetura 2. Kafka 3. Demonstração

  27. André Badawi Missaglia andre.missaglia@gmail.com.br github.com/andremissaglia https://www.linkedin.com/in/andremissagl ia/ Obrigado! Dúvidas?