SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
MANDIC + RIVENDEL.
ESPECIALISTAS EM CLOUDS.
Arquitetura orientada a
eventos
Desenvolvedor
everton.tavares@rivendel.com.br
@ezidio
mandic.com.br
Everton Tavares
3
Eventos
Resultado de uma ação;
Padrão Observer (Don’t call me…
i will call you);
4
Event Driven Architecture??
5
Cenário
Operadora de
crédito
Calcular pontuação Enviar notificação
Realiza compra
UI
6
Acoplamento
Cenário
Operadora de
crédito
Calcular pontuação Enviar notificação
Realiza compra
UI
7
Event Driven Architecture
+ Event Notification
+ Event-Carried State Transfer
+ Event Sourcing
+ CQRS - Command Query Responsibility Segregation
8
Cenário
Operadora de
crédito
Calcular pontuação Enviar notificação
Realiza compra
UI
9
Event Notification
Operadora de
crédito
Calcular pontuação
Enviar notificação
Compra
efetivada
Realiza compra
UI
10
Event Notification
Operadora de
crédito
Calcular pontuação
Enviar notificação
Compra
efetivada
...
...
Realiza compra
UI
11
Event Notification
+ Desacopla receptor do emissor (reduz acoplamento);
+ Possibilita adicionar novos comportamentos sem mexer no
código;
- Falta de visão geral sobre o comportamento do sistema;
12
Event Driven Architecture
+ Event Notification
+ Event-Carried State Transfer
+ Event Sourcing
+ CQRS - Command Query Responsibility Segregation
13
Event Notification
Operadora de
crédito
Calcular pontuação
Compra
efetivada
Realiza compra
UI
14
Event-Carried State Transfer
Operadora de
crédito
Calcular pontuação
Compra
efetivada
Realiza compra
UI
15
Event-Carried State Transfer
+ Sistemas ainda mais desacoplados;
+ Aumento de performance (menos tráfego entre os serviços);
+ Reduz a carga no “supplier”;
+ Aumenta a disponibilidade (Se a fonte do evento cai, os sistemas
pareados podem continuar funcionando);
- Replicação de dados;
16
Event Driven Architecture
+ Event Notification
+ Event-Carried State Transfer
+ Event Sourcing
+ CQRS - Command Query Responsibility Segregation
17
Sistemas “tradicionais”
Operadora de
crédito
Realiza compra
UI
18
Event Sourcing
Operadora de
crédito
Compra
realizada
UI
19
Event Sourcing
Limite: R$ 1000,00
Total débitos: R$ 0,00
Estado inicial
20
Event Sourcing
Compra realizada: (10/03/2019) R$ 200,00Limite: R$ 1000,00
Total débitos: R$ 200,00
21
Event Sourcing
Compra realizada: (10/03/2019) R$ 200,00Limite: R$ 1000,00
Total débitos: R$ 215,00
Compra realizada: (14/03/2019) R$ 15,00
22
Event Sourcing
Compra realizada: (10/03/2019) R$ 200,00Limite: R$ 1000,00
Total débitos: R$ 285,00
Compra realizada: (14/03/2019) R$ 15,00
Compra realizada: (23/03/2019) R$ 70,00
23
Event Sourcing
Compra realizada: (10/03/2019) R$ 200,00Limite: R$ 1000,00
Total débitos: R$ 667,00
Compra realizada: (14/03/2019) R$ 15,00
Compra realizada: (23/03/2019) R$ 70,00
Compra realizada: (28/03/2019) R$ 382,00
24
Event Sourcing
Compra realizada: (10/03/2019) R$ 200,00Limite: R$ 1000,00
Total débitos: R$ 67,00
Compra realizada: (14/03/2019) R$ 15,00
Compra realizada: (23/03/2019) R$ 70,00
Pagamento realizado: (01/04/2019) R$600,00
Compra realizada: (28/03/2019) R$ 382,00
25
+ Auditoria;
+ Debugging;
+ Facilidade em reconstruir a base de dados;
+ Estado alternativo;
+ Snapshots*
+ Possibilidade de “voltar no tempo”;
Event Sourcing
26
- Alta complexidade;
- Falta de familiaridade;
- Versionamento e schema de eventos;
- Relacionamento com sistemas externos;
- Identificadores;
Event Sourcing
27
Event Sourcing
28
Event Driven Architecture
+ Event Notification
+ Event-Carried State Transfer
+ Event Sourcing
+ CQRS - Command Query Responsibility Segregation
29
Eventos vs Comandos
Tudo depende da intenção...
30
Arquitetura “tradicional”
Model UI
31
CQRS
(Command Query Responsibility Segregation)
Query Model
Command Model
UI
32
Query Model
Command Model
Read
Write
UI
CQRS
(Command Query Responsibility Segregation)
33
Read
Model
Write
UI
CQRS
(Command Query Responsibility Segregation)
34
Model
Read
Write
UI
CQRS
(Command Query Responsibility Segregation)
35
+ Alta performance;
- Alta complexidade;
CQRS
(Command Query Responsibility Segregation)
36
Event Driven Architecture
+ Event Notification
+ Event-Carried State Transfer
+ Event Sourcing
+ CQRS - Command Query Responsibility Segregation
37
Message Systems
- Queue Based:
- ActiveMQ
- RabbitMQ
- AWS SQS
- ...
- Log Based:
- Apache Kafka
- AWS Kinesis
- Google Pub/Sub
- Apache Pulsar
- ...
Perguntas?
Obrigado!

Mais conteúdo relacionado

Semelhante a Arquitetura Orientada a Eventos

Como a gestão de sua loja virtual pode influenciar na experiência de compra d...
Como a gestão de sua loja virtual pode influenciar na experiência de compra d...Como a gestão de sua loja virtual pode influenciar na experiência de compra d...
Como a gestão de sua loja virtual pode influenciar na experiência de compra d...Samuel Gonsales
 
Lessons learned 3.0 equipa43 week7
Lessons learned 3.0 equipa43 week7Lessons learned 3.0 equipa43 week7
Lessons learned 3.0 equipa43 week7plan4women
 
Ultra Estudo de Viabilidade Econômico-Financeira
Ultra Estudo de Viabilidade Econômico-FinanceiraUltra Estudo de Viabilidade Econômico-Financeira
Ultra Estudo de Viabilidade Econômico-FinanceiraEduardo Gomes
 
Mercearia Online - Vovó Tereza
Mercearia Online - Vovó TerezaMercearia Online - Vovó Tereza
Mercearia Online - Vovó TerezaMarco Coghi
 
Explorando métricas avançadas do seu e-commerce
Explorando  métricas avançadas  do seu e-commerceExplorando  métricas avançadas  do seu e-commerce
Explorando métricas avançadas do seu e-commerceAgência M3
 
Palestra como montar seu próprio negócio
Palestra   como montar seu próprio negócioPalestra   como montar seu próprio negócio
Palestra como montar seu próprio negócioSebrae Santa Catarina
 
1aula cont
1aula cont1aula cont
1aula contlumignal
 
Material analise demonstracoes_contabeis
Material analise demonstracoes_contabeisMaterial analise demonstracoes_contabeis
Material analise demonstracoes_contabeiszeramento contabil
 
Gestão e comercialização de resíduos em eventos
Gestão e comercialização de resíduos em eventosGestão e comercialização de resíduos em eventos
Gestão e comercialização de resíduos em eventosREDERESÍDUO
 
Aula 20 contabilidade
Aula 20 contabilidadeAula 20 contabilidade
Aula 20 contabilidadecontacontabil
 

Semelhante a Arquitetura Orientada a Eventos (18)

4 ua-cf caderno-apoio_4
4 ua-cf caderno-apoio_44 ua-cf caderno-apoio_4
4 ua-cf caderno-apoio_4
 
Administrandooseudinheiro 131118124151-phpapp01
Administrandooseudinheiro 131118124151-phpapp01Administrandooseudinheiro 131118124151-phpapp01
Administrandooseudinheiro 131118124151-phpapp01
 
Administrando meu dinheiro
Administrando meu dinheiroAdministrando meu dinheiro
Administrando meu dinheiro
 
Aula_fluxo de caixa 3.pdf
Aula_fluxo de caixa 3.pdfAula_fluxo de caixa 3.pdf
Aula_fluxo de caixa 3.pdf
 
Como a gestão de sua loja virtual pode influenciar na experiência de compra d...
Como a gestão de sua loja virtual pode influenciar na experiência de compra d...Como a gestão de sua loja virtual pode influenciar na experiência de compra d...
Como a gestão de sua loja virtual pode influenciar na experiência de compra d...
 
Lessons learned 3.0 equipa43 week7
Lessons learned 3.0 equipa43 week7Lessons learned 3.0 equipa43 week7
Lessons learned 3.0 equipa43 week7
 
Ultra Estudo de Viabilidade Econômico-Financeira
Ultra Estudo de Viabilidade Econômico-FinanceiraUltra Estudo de Viabilidade Econômico-Financeira
Ultra Estudo de Viabilidade Econômico-Financeira
 
Mercearia Online - Vovó Tereza
Mercearia Online - Vovó TerezaMercearia Online - Vovó Tereza
Mercearia Online - Vovó Tereza
 
Mercearia
MerceariaMercearia
Mercearia
 
Explorando métricas avançadas do seu e-commerce
Explorando  métricas avançadas  do seu e-commerceExplorando  métricas avançadas  do seu e-commerce
Explorando métricas avançadas do seu e-commerce
 
Palestra como montar seu próprio negócio
Palestra   como montar seu próprio negócioPalestra   como montar seu próprio negócio
Palestra como montar seu próprio negócio
 
Partilha ICMS
Partilha ICMSPartilha ICMS
Partilha ICMS
 
1aula cont
1aula cont1aula cont
1aula cont
 
Material analise demonstracoes_contabeis
Material analise demonstracoes_contabeisMaterial analise demonstracoes_contabeis
Material analise demonstracoes_contabeis
 
Gestão e comercialização de resíduos em eventos
Gestão e comercialização de resíduos em eventosGestão e comercialização de resíduos em eventos
Gestão e comercialização de resíduos em eventos
 
Aula 20 contabilidade
Aula 20 contabilidadeAula 20 contabilidade
Aula 20 contabilidade
 
Gestão de negócios
Gestão de negóciosGestão de negócios
Gestão de negócios
 
Classifique os custos 10
Classifique os custos 10Classifique os custos 10
Classifique os custos 10
 

Mais de Everton Tavares

BFF - Best Friends Forever?
BFF - Best Friends Forever?BFF - Best Friends Forever?
BFF - Best Friends Forever?Everton Tavares
 
Apresentando o Apache Camel
Apresentando o Apache CamelApresentando o Apache Camel
Apresentando o Apache CamelEverton Tavares
 
Minha api deve ser rest?
Minha api deve ser rest?Minha api deve ser rest?
Minha api deve ser rest?Everton Tavares
 
Tdd como uma ferramenta de arquitetura
Tdd como uma ferramenta de arquiteturaTdd como uma ferramenta de arquitetura
Tdd como uma ferramenta de arquiteturaEverton Tavares
 
Meu Cliente não permite DevOps. E agora?
Meu Cliente não permite DevOps. E agora?Meu Cliente não permite DevOps. E agora?
Meu Cliente não permite DevOps. E agora?Everton Tavares
 
Criando Entidades "Like a Boss"
Criando Entidades "Like a Boss"Criando Entidades "Like a Boss"
Criando Entidades "Like a Boss"Everton Tavares
 

Mais de Everton Tavares (7)

BFF - Best Friends Forever?
BFF - Best Friends Forever?BFF - Best Friends Forever?
BFF - Best Friends Forever?
 
Apresentando o Apache Camel
Apresentando o Apache CamelApresentando o Apache Camel
Apresentando o Apache Camel
 
Minha api deve ser rest?
Minha api deve ser rest?Minha api deve ser rest?
Minha api deve ser rest?
 
Tdd como uma ferramenta de arquitetura
Tdd como uma ferramenta de arquiteturaTdd como uma ferramenta de arquitetura
Tdd como uma ferramenta de arquitetura
 
Meu Cliente não permite DevOps. E agora?
Meu Cliente não permite DevOps. E agora?Meu Cliente não permite DevOps. E agora?
Meu Cliente não permite DevOps. E agora?
 
Expression Language 3.0
Expression Language 3.0Expression Language 3.0
Expression Language 3.0
 
Criando Entidades "Like a Boss"
Criando Entidades "Like a Boss"Criando Entidades "Like a Boss"
Criando Entidades "Like a Boss"
 

Arquitetura Orientada a Eventos