Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee...

42
Lado negro das Arquiteturas Orientadas a Eventos

Transcript of Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee...

Page 1: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Lado negro das Arquiteturas Orientadas a

Eventos

Page 2: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Rafael Girolineto

Tech Lead na Arquivei (temos vagas)Opensanca

11 anos no mercado de devEng Comp USP

Coffee Geek

@rafapg

Page 3: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos (DF-e).

Ciclo de vida de um DFe é complexo e varia de documento em documento.

Arquitetura orientada a eventos ajuda a resolver esse problema

Page 4: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Mas o que é Arquitetura Orientada a Eventos?

Page 5: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Usuário

Pagamento

Controle deAcesso

SharedAções de usuários

Jobs executados

Backoffice

O Poder do Império Monolito

Page 6: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Usuário

Pagamento

Controle de

Acesso

Shared

Pagamento

Usuário

Pagamento

Usuário

Usuário

Pagamento

Controle de

Acesso

Monolito vs Microserviços

Microservices…I am your

father!

Page 7: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

PagamentoPagamentoUsuário

UsuárioUsuárioPagamento

Controle deAcesso

Job inadimplentes

Integração entre serviços

Alto acoplamento entre serviços

Conhecimento antecipado de todos os interessados

1

2

3

4

1. Job Inadimplentes executa2. Inativação de Cliente3. Bloqueio do Acesso4. Obtenção de Informação do Cliente

Page 8: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

PagamentoPagamentoUsuário

UsuárioUsuárioPagamento

Controle deAcesso

Job inadimplentes

Mensagem / Evento de cliente inadimplente

Redução de acoplamento entre serviços

Independente dos interessados

Não acompanha domínio de informação

1 2 3.a

3.b

1. Job Inadimplentes executa2. Mensagem de Inadimplente3.a. Inativação do Usuário3.b. Bloqueio do Acesso4. Obtenção de Informação do Cliente

4

Page 9: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

UsuárioUsuárioPagamento Controle deAcesso

PagamentoPagamentoUsuárioJob inadimplentes

Stream de Eventos

12 3 4 5

Redução de acoplamento entre serviços

Independente dos interessados

Acompanha domínio de informação

1. Job Inadimplentes executa2. Evento de Inadimplente3. Inativação do Usuário4. Evento de Usuário Inativo5. Bloqueio do Acesso

Page 10: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

● Diminuição do acoplamento

● Processamento assíncrono

● Alta escalabilidade

● Limitação do escopo dos serviços

Vantagens

Page 11: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Onde isso pode dar errado?

Como resolver esses problemas?

Page 12: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

UsuárioUsuárioPagamento Controle deAcesso

Pagamento

PagamentoUsuárioJob inadimplentes

Como gerar um relatório de usuários bloqueados por inadimplência?

Falta visão analítica consolidada

Page 13: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

UsuárioUsuárioPagamento Controle deAcesso

Pagamento

PagamentoUsuárioJob inadimplentes

EventExtractor Events

Persistência de eventos

Extração para BD analítico

Consolodação de Tópicos (Join)

Page 14: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

UsuárioUsuárioPagamento Controle deAcesso

Pagamento

PagamentoUsuárioJob

Como descobrir o que originalmente levou ao erro na notificação?

Baixa Rasterabilidade

Pagamento

PagamentoNotificação

ERRO

Page 15: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

UsuárioUsuárioPagamento Controle deAcesso

Pagamento

PagamentoUsuárioJob

Implementação de TraceID

Pagamento

PagamentoNotificação

ERRO

Plano InadimplenteTraceId: 123SpanId: 111

Usuário InativoTraceId: 123SpanId: 222

Acesso BloqueadoTraceId: 123SpanId: 333

Page 16: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

UsuárioUsuárioPagamento Controle deAcesso

Pagamento

PagamentoUsuárioJob inadimplentes

Em um determinado momento o usuário inativo é capaz de acessar o sistema

Consistência Eventual

Page 17: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

UsuárioUsuárioPagamento Controle deAcesso

Pagamento

PagamentoUsuárioJob inadimplentes

Projetar Considerando Consistência Eventual

O que precisa ser sempre SÍNCRONO?

Como lidar com estados “sujos”?

Quais casos posso abraçar a consistência eventual?

Page 18: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

UsuárioUsuárioPagamentoPagament

oPagament

oUsuárioJob

Serviço de usuário quebra na mudança do formato do evento de inadimplência

Quebra de Contrato

{ userId: 123, payment: { }}

{ payment: { userId: 123 }}

Page 19: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

UsuárioUsuárioPagamentoPagament

oPagament

oUsuárioJob

Validação de Schema

{ version: 1, userId: 123, payment: { }}

{ version: 1, payment: { userId: 123 }}

Page 20: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

UsuárioUsuárioPagamento Usuário UsuárioJob

Pagamento

Eventos de pagamento processados em ordem invertida.

Cliente ficará bloqueado mesmo após pagar

Processamento Fora de Ordem

Page 21: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

UsuárioUsuárioPagamento Usuário UsuárioJob

Pagamento

Particionamento

Cada instância responde por uma parcela dos usuários

A ordem é respeitada dentro da partição

Page 22: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Quem irá prevalecer?

Page 23: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Quando Evitar?● Se a consistência é primordial● Quando a ordem é muito

importante e não é possível particionar

● Não existe rastreabilidade entre eventos

Page 24: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Quando Adotar?● Processamento síncrono é

importante● Queremos desacoplar os

contextos● Aceitamos a consistência

eventual● Temos processos para lidar com

as divergências

Page 25: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

event

Page 26: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Perguntas?

Page 27: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Obrigado!!!@rafapg

Page 28: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Vantagens

1. Diminuição do acoplamento

2. Processamento assíncrono

3. Alta escalabilidade

4. Limitação do escopo dos serviços

Page 29: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Problemas● Falta de visão analítica / consolidada● Baixa rastreabilidade● Consistência Eventual● Quebra de contrato● Processamento fora de ordem

Page 30: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Como resolver esses problemas?

Page 31: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Falta de visão analítica / consolidada1. Processo de consolidação verificou inadimplência

2. Evento de inadimplência inativou o usuário

3. Inativação do usuário suspendeu o acesso

Como descobrir quais casos de suspensão de acesso por inadimplência?

Page 32: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Falta de visão analítica / consolidada

● Armazenamento dos eventos● Extração dos dados de evento para BD

analíticos● Join entre tópicos (Kafka Streams)

Page 33: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Baixa rastreabilidade1. Processo de consolidação verificou inadimplência

2. Evento de inadimplência inativou o usuário

3. Inativação do usuário suspendeu o acesso

4. Suspensão do acesso disparou uma notificação com erro

O que originou inicialmente a notificação com erro?

Page 34: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Baixa rastreabilidade

● Implementação de tracing distribuído (OpenTracing)

○ Logs

○ Controle de TraceId

Page 35: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Consistência Eventual1. Processo de consolidação verificou inadimplência

2. Evento de inadimplência inativou o usuário

3. Inativação do usuário suspendeu o acesso

Existe um instante onde o usuário estará inativo e inadimplente, mas poderá acessar o sistema

Page 36: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Consistência Eventual

● Gestão de estados "sujos”

● Uso de processamento síncrono em casos críticos

● Aceita que dói menos

Page 37: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Rafael GirolinetoTech Lead na Arquivei (temos vagas)

11 anos no mercado de devEng Comp 04 USP São Carlos

Coffee Geek (coffee chato)

@rafapg

Page 38: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Quebra de contrato1. Serviço de pagamento altera o contrato de evento de

inadimplência

2. Serviço de usuário não consegue processar evento

Toda a cadeia de eventos será impactada

Page 39: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Quebra de contrato

● Implementação de validação de schema (Avro)

● Produtor e consumidor compartilham o mesmo contrato

Page 40: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

1. Consolidação verificou inadimplência gerando evento de inadimplência

2. Cliente realiza pagamento gerando evento de adimplência

3. Serviço de usuário recebe eventos em ordem invertida

Processamento fora de ordem

Cliente adimplente será inativado

Page 41: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos

Processamento fora de ordem● Garantia de ordem / Particionamento

● Processamento síncrono para casos críticos

● Persistência de informação não consolidada (data de suspensão e data de pagamento)

Page 42: Lado negro das Arquiteturas Orientadas a Eventos · 11 anos no mercado de dev Eng Comp USP Coffee Geek @rafapg. Sistema de consulta e armazenamento de Documentos Fiscais Eletrônicos