Globalcode – Open4education
Arquitetura Orientada a eventos
em ambientes complexos
Trilha - Microservices
Globalcode – Open4education
Agenda
• Conceitos e cases• Eventos
• Arquitetura Orientada a Eventos
• Principais Patterns e aplicabilidade
• Conceitos kafka
• Use Cases
Globalcode – Open4education
Contextualizando...
Globalcode – Open4education
+
++
+
Log Aplicação
Log Infraestrutura
Log Banco de Dados
_ X
Event Sourcing+
Log Integração
Log eventos de negócios
Log Segurança
Exemplos:
Globalcode – Open4education
Exemplos Tecnologias
FONTE: Internet
Event Sourcing+
LogBin
Oracle Golden Gate
SQL Server Agent
Exemplos:
Globalcode – Open4education
Evento
“Algo que acontece e que se pode observar"
Martin Fowler (2005) diz que é possível“Capturar todas as mudanças de estado de uma aplicação com uma sequência de eventos.”
Globalcode – Open4education
Event Driven - Gartner
Importante para os negócios digitais é a ideia de que a empresa está sempre sentindo
e pronta para explorar novos momentos de negócios digitais.
Rápida detecção dos eventos e análise dos dados.
O negócio digital impulsiona a necessidade de líderes, planejadores e arquitetos de TI
adotarem o pensamento sobre eventos.
Globalcode – Open4education
Quando utilizamos?
● Arquitetura distribuída
● Arquitetura Microserviços
● Volumetria dos dados
● Responsividade
● Escalabilidade
Globalcode – Open4education
Event Driven Architecture
Paradigma de design no qual um componente de software é executado em resposta ao recebimento de uma ou mais notificações de eventos. O EDA é mais fracamente acoplado do que o paradigma cliente / servidor, porque o componente que envia a notificação não conhece a identidade dos componentes receptores no momento da compilação.
Globalcode – Open4education
Modelo trivial:
Eventos
Globalcode – Open4education
PatternsÀs vezes, mais de um deles é usado em conjunto no mesmo sistema, dependendo de quais são os requisitos de negócios.
Globalcode – Open4education
Event Notification
Cliente faz alteração
de endereço CRM
Event
Seguros
Cadastros Crédito Cartões
Evento de
notificação
Baixo nível de acoplamento
Perder a visão de todos os fluxos
(exemplo comando ao invés de
evento
+
-
Domínio Com Dados dos Clientes
BD
Globalcode – Open4education
Event-Carried State Transfer
Cliente faz alteração
de endereço CRM
Event
Seguros
Crédito Cartões
Transporte do
estado na
mensagem
-Alta Disponibilidade e Resiliência
-Menor latência
Duplicação de Dados
-Complexidade no Receptor
+
-
Domínio Com Dados dos Clientes
Sistemas sempre deveriam consultar
o Golden Source da informação
(CRM)
Clientes
Clientes
Clientes
Clientes
Globalcode – Open4education
Event Sourcing?
Para Martin Folwer o “Event Sourcing assegura que todas as mudanças feitas no estado de uma aplicação são armazenadas como uma sequência de eventos. Não só podemos buscar esses eventos, mas também podemos usar este log de eventos para reconstruir estados passados e ajustar automaticamente o estado atual com mudanças retroativas”.
Globalcode – Open4education
Event Sourcing
• Débito
• Crédito
• Transferência
Extrato
• Débito 1000,00
• Crédito 500,00
• Saldo 5000
+ Auditoria
+ Dados Históricos
+ Voltar ao estado
Evento Gerado
Saldo
1000
Captura de eventos
- Dependência de Sistemas Externos
Globalcode – Open4education
CQRS – Comand Query Responsabily Segregation
Globalcode – Open4education
CQRS e Event Soucing
Globalcode – Open4education
“Apache Kafka é uma plataforma distribuída de mensagens e streaming”.
Globalcode – Open4education
Empresas que utilizam esta abordagem
Globalcode – Open4education
● Escalabilidade
● Tolerância a Falhas
● Baixa Latência
● Alto throughput
Por quê Kafka?
Globalcode – Open4education
Globalcode – Open4education
Globalcode – Open4education
Ambiente Complexo
-Muitas integrações
-Aquisição de Corporações
-ERP, CRM, PaaS, SaaS, etc...
-Grandes Legados
Globalcode – Open4education
Ambiente Complexo
-Produtos diversos
-Alta volumetria de dados
- Em torno de 4000 tps (Exemplo de consumo)
- Teras de dados por dia (logs)
-Dados sensíveis
- Orgão Regularórios (SUSEP,BACEN,ANBIMA, etc)
Globalcode – Open4education
Ambiente Complexo
-Cloud pública, Cloud Híbrida e Cloud Privada
-Requisito de alta disponibilidade
-Latência
Globalcode – Open4education
Globalcode – Open4educationRede Interna
Internet/VPN
Private Cloud
On Premises MainframePacotes
Múltiplos Ambientes
Globalcode – Open4educationRede Interna
Internet/VPN
Private CloudOn Premises MainframePacotes
Case Compras
Efetua Compra via App
Apache
Kafka
Eve
nto
Com
pra
Consumers:
Estoque, Fornecedor
Finanças ,RH
Atualiza comprador RH
Envia
pedid
o
Pedido Aprovado
Interface aprovação
Envia
em
ail
ERP
ERP
Globalcode – Open4educationRede Interna
Case Analytics e Ofertas
Captura logs transações
Apache
Kafka
Evento Ação do Cliente
Envia dados
Wargning
Globalcode – Open4education
Recomendações
Guildas Cases de Mercado Ferramentas
Segurança Alternativas
Globalcode – Open4education
Paula Santana
https://www.linkedin.com/in/paula-
macedo-santana-dev/
Tatiana Scarpioni
https://www.linkedin.com/in/tatian
a-scarpioni-8934391a/