SlideShare uma empresa Scribd logo
1 de 49
Desenvolvendo sistemas
gigantes na internet com
arquitetura baseada
em eventos
Olá!
Paula Santana
Desde 2008 em Tecnologia
Desenvolvimento Java
Arquitetura de Soluções
Praia > SP
Devs JavaGirl
SouJava
O objetivo
Mostrar principais conceitos sobre arquitetura
orientada a eventos (EDA), possibilitando que você
tenha uma base para assuntos mais específicos e um
senso crítico sobre as abordagens
Agenda
✘ Arquitetura de software
✘ Problemas que surgem
✘ Gigante X Complexo
✘ Event Driven
○ Topologias
○ Padrões
✘ Próximos passos
Problema
Qual problema vamos analisar?
O que um programador faz?
Expectativa
Realidade
Solução
“
Arquitetura de sistemas
consiste na definição dos
componentes de software, suas
propriedades externas, e seus
relacionamentos com outros
softwares
Monolito
Origem: https://microservices.io/patterns/microservices.html
Microservice
Fonte: https://www.appcentrica.com/wp-content/uploads/2016/11/Microservices-Architecture-1.png
15
Fonte: https://www.goobec.com.br/blog/redes-sociais-dados-estatisticos-2018/
Sistemas Gigantes
Sistemas Gigantes Complexos
Volume de
Requisições /
Transações /
Operações
Muitas
integrações
Volumetria
de DAdos
Muitas
áreas de
Produto
Alta
disponibilidade
Legado
Microsserviços
Desenvolvedor
Outros Padrões
Empresas que utilizam esta abordagem
“Arquitetura Orientada a
Eventos tem a capacidade de
detectar eventos e reagir de
maneira inteligente a eles.
Resolve
Event
Driven
Problema
Eventos
Ação ou ocorrência que aconteceu.
Mudança de estado.
Evento
Mensagem
Comando
EventosProdutor Consumidor
Topologia
MediadorApache Camel, Spring Integration ou Mule ESB
Orquestração
Pagamento
Vendedor
Entrega
Pedido
Mediador
Coreografia
Pagamento
Vendedor
Entrega Pedido
Mediador
1. 2. 3. 4.
BrokerKafka, ActiveMq, RabbitMq
Padrões
Notificação de
Evento
Serviço de
Clientes
Serviço de
Preferências
Atualiza
Endereço
BD
Broker de Eventos
cliente xxxx
atualizou os dados
Serviço de
Entrega
Serviço de
ofertas
Notificação de
Evento
● Se for usado como
comando, a larga
escala pode-se perder
a visão do fluxo
● Onerando o produtor
com consultas
● Baixo nível de
acoplamento
● Produtor não precisa
saber quem são
consumidores
👍
Transferência de Estado
Transportado pelo evento
Serviço de
Clientes
Serviço de
Preferências
Atualiza
Endereço
BD
Broker de Eventos
cliente xxxx
atualizou os
dados
xxxxx
xxxxx
xxxx
Serviço de
EntregaBD BD
● Duplicação dos dados
● Dados fora do domínio
● Complexidade no
consumo de eventos
● Alta disponibilidade e
resiliência
👍
Transferência de Estado
Transportado pelo evento
Fonte de Eventos - Event Sourcing
Profile
Webapp
Crédito
Débito
Transferência
Eventos
Broker de Eventos
Dados de
Leitura
Manipulação
de Eventos
Crédito
Débito
Transferência
● Schema de Eventos
● Complexidade
● Dependência Externa
● Auditoria dos dados
● Debugging
● histórico dos eventos
● Permite retornar
estado
👍
Fonte de Eventos - Event Sourcing
Próximos Passos
Possibilidades de uso dessa
abordagem
● Arquitetura Microservices / Distribuída
● Aumento nas integrações
● Volumetria dos dados
● Responsividade
● Escalabilidade
Entenda as
soluções de
mercado e veja
as vantagens
de cada uma
Modelos de Entrega - Fila
Produtor
Financeiro
Financeiro
Fila
Modelos de Entrega - Tópico
Produtor
Financeiro
Entrega
Tópico
Implementação
Benefícios
✘ Menor Acoplamento
✘ Operações Assíncronas
✘ Facilidade em Adicionar novos
consumidores
✘ Altamente escalável e distribuído
✘ Facilidade em evolução
✘ Facilidade em experimentação
Problemas
✘ Concorrência
✘ Complexidade
✘ Garantir Entrega
✘ Governança
Dica de Ouro
me solta….
...que eu vou usar isso no meu projeto.
Obrigada!
Dúvidas?
@psanrosa13
psanrosa13@gmail.com
www.linkedin.com/in/paula-macedo-santana-dev/

Mais conteúdo relacionado

Semelhante a Desenvolvendo sistemas gigantes com arquitetura baseada em eventos

Cloud Computing com Windows Azure
Cloud Computing com Windows AzureCloud Computing com Windows Azure
Cloud Computing com Windows AzureMarcelo Paiva
 
Trabalhando com ALM na nuvem
Trabalhando com ALM na nuvemTrabalhando com ALM na nuvem
Trabalhando com ALM na nuvemAdriano Bertucci
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Rodrigo Kono
 
Afinal, o que são Single Page Applications
Afinal, o que são Single Page ApplicationsAfinal, o que são Single Page Applications
Afinal, o que são Single Page ApplicationsPatrick Monteiro
 
Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Marcus Garcia
 
Visão Geral sobre o Application Insights
Visão Geral sobre o Application InsightsVisão Geral sobre o Application Insights
Visão Geral sobre o Application InsightsAndré Dias
 
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de MicroservicesDeep Tech Brasil
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devopsDiego Pacheco
 
A Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance AplicacionalA Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance AplicacionalNuno Baptista Rodrigues
 
SQL Saturday 469 Brasília - Oportunidades com a plataforma de dados da Microsoft
SQL Saturday 469 Brasília - Oportunidades com a plataforma de dados da MicrosoftSQL Saturday 469 Brasília - Oportunidades com a plataforma de dados da Microsoft
SQL Saturday 469 Brasília - Oportunidades com a plataforma de dados da MicrosoftRodrigo Crespi
 
DevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App InsightsDevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App InsightsAdriano Bertucci
 
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...Marcus Garcia
 
Application Insights
Application InsightsApplication Insights
Application InsightsCDS
 
Qual é o futuro da estratégia de dados?
Qual é o futuro da estratégia de dados?Qual é o futuro da estratégia de dados?
Qual é o futuro da estratégia de dados?Denodo
 
Application Insights - Agosto/2016
Application Insights - Agosto/2016Application Insights - Agosto/2016
Application Insights - Agosto/2016Renato Groff
 
Application Insights - MS Weekend 2016
Application Insights - MS Weekend 2016Application Insights - MS Weekend 2016
Application Insights - MS Weekend 2016Renato Groff
 
Mashups e Modelagem Quantitativa Usando Padrões de Mashup com foco no Gerenci...
Mashups e Modelagem Quantitativa Usando Padrões de Mashup com foco no Gerenci...Mashups e Modelagem Quantitativa Usando Padrões de Mashup com foco no Gerenci...
Mashups e Modelagem Quantitativa Usando Padrões de Mashup com foco no Gerenci...Carlos Raniery
 

Semelhante a Desenvolvendo sistemas gigantes com arquitetura baseada em eventos (20)

Status Report do TCC: SIN-NA7
Status Report do TCC: SIN-NA7Status Report do TCC: SIN-NA7
Status Report do TCC: SIN-NA7
 
Cloud Computing com Windows Azure
Cloud Computing com Windows AzureCloud Computing com Windows Azure
Cloud Computing com Windows Azure
 
Trabalhando com ALM na nuvem
Trabalhando com ALM na nuvemTrabalhando com ALM na nuvem
Trabalhando com ALM na nuvem
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
 
Afinal, o que são Single Page Applications
Afinal, o que são Single Page ApplicationsAfinal, o que são Single Page Applications
Afinal, o que são Single Page Applications
 
Computação em nuvem e Windows Azure
Computação em nuvem e Windows AzureComputação em nuvem e Windows Azure
Computação em nuvem e Windows Azure
 
Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1)
 
Visão Geral sobre o Application Insights
Visão Geral sobre o Application InsightsVisão Geral sobre o Application Insights
Visão Geral sobre o Application Insights
 
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
 
A Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance AplicacionalA Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance Aplicacional
 
SQL Saturday 469 Brasília - Oportunidades com a plataforma de dados da Microsoft
SQL Saturday 469 Brasília - Oportunidades com a plataforma de dados da MicrosoftSQL Saturday 469 Brasília - Oportunidades com a plataforma de dados da Microsoft
SQL Saturday 469 Brasília - Oportunidades com a plataforma de dados da Microsoft
 
DevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App InsightsDevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App Insights
 
DevOps e App Insights
DevOps e App InsightsDevOps e App Insights
DevOps e App Insights
 
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
 
Application Insights
Application InsightsApplication Insights
Application Insights
 
Qual é o futuro da estratégia de dados?
Qual é o futuro da estratégia de dados?Qual é o futuro da estratégia de dados?
Qual é o futuro da estratégia de dados?
 
Application Insights - Agosto/2016
Application Insights - Agosto/2016Application Insights - Agosto/2016
Application Insights - Agosto/2016
 
Application Insights - MS Weekend 2016
Application Insights - MS Weekend 2016Application Insights - MS Weekend 2016
Application Insights - MS Weekend 2016
 
Mashups e Modelagem Quantitativa Usando Padrões de Mashup com foco no Gerenci...
Mashups e Modelagem Quantitativa Usando Padrões de Mashup com foco no Gerenci...Mashups e Modelagem Quantitativa Usando Padrões de Mashup com foco no Gerenci...
Mashups e Modelagem Quantitativa Usando Padrões de Mashup com foco no Gerenci...
 

Mais de Paula Santana

Boas Práticas para desenvolvimento java que nunca saíram de moda
Boas Práticas para desenvolvimento java que nunca saíram de modaBoas Práticas para desenvolvimento java que nunca saíram de moda
Boas Práticas para desenvolvimento java que nunca saíram de modaPaula Santana
 
Como começar quando se esta começando?
Como começar quando se esta começando?Como começar quando se esta começando?
Como começar quando se esta começando?Paula Santana
 
Desvendando a arquitetura orientada a eventos
Desvendando a arquitetura orientada a eventosDesvendando a arquitetura orientada a eventos
Desvendando a arquitetura orientada a eventosPaula Santana
 
Clean code com features do java 8 a java 14
Clean code com features do java 8 a java 14Clean code com features do java 8 a java 14
Clean code com features do java 8 a java 14Paula Santana
 
Como começas quando se está começando
Como começas quando se está começandoComo começas quando se está começando
Como começas quando se está começandoPaula Santana
 
Refatoracao de codigo
Refatoracao de codigoRefatoracao de codigo
Refatoracao de codigoPaula Santana
 
Desenvolvimento com arquitetura baseada em eventos
Desenvolvimento com arquitetura baseada em eventosDesenvolvimento com arquitetura baseada em eventos
Desenvolvimento com arquitetura baseada em eventosPaula Santana
 
Como fazer um bom desgn de c[odigo em java
Como fazer um bom desgn de c[odigo em javaComo fazer um bom desgn de c[odigo em java
Como fazer um bom desgn de c[odigo em javaPaula Santana
 
Workshop git para iniciantes
Workshop git para iniciantesWorkshop git para iniciantes
Workshop git para iniciantesPaula Santana
 
Facilitando a implementação de mensageria em aplicações Java
Facilitando a implementação de mensageria em aplicações JavaFacilitando a implementação de mensageria em aplicações Java
Facilitando a implementação de mensageria em aplicações JavaPaula Santana
 
Como uma linguagem de programação pode empoderar uma mulher
Como uma linguagem de programação pode empoderar uma mulherComo uma linguagem de programação pode empoderar uma mulher
Como uma linguagem de programação pode empoderar uma mulherPaula Santana
 
Graphql - o que é, onde e porque usar?
Graphql - o que é, onde e porque usar?Graphql - o que é, onde e porque usar?
Graphql - o que é, onde e porque usar?Paula Santana
 
4 revolucao industrial
4 revolucao industrial4 revolucao industrial
4 revolucao industrialPaula Santana
 
Arquitetura orientada a eventos em ambientes complexos tdc
Arquitetura orientada a eventos em ambientes complexos tdcArquitetura orientada a eventos em ambientes complexos tdc
Arquitetura orientada a eventos em ambientes complexos tdcPaula Santana
 
Experiências de quem utiliza a Stack da Netflix e Spring boot em serviços de ...
Experiências de quem utiliza a Stack da Netflix e Spring boot em serviços de ...Experiências de quem utiliza a Stack da Netflix e Spring boot em serviços de ...
Experiências de quem utiliza a Stack da Netflix e Spring boot em serviços de ...Paula Santana
 
Microsserviços, moda ou necessidade?
Microsserviços, moda ou necessidade?Microsserviços, moda ou necessidade?
Microsserviços, moda ou necessidade?Paula Santana
 

Mais de Paula Santana (19)

Boas Práticas para desenvolvimento java que nunca saíram de moda
Boas Práticas para desenvolvimento java que nunca saíram de modaBoas Práticas para desenvolvimento java que nunca saíram de moda
Boas Práticas para desenvolvimento java que nunca saíram de moda
 
Como começar quando se esta começando?
Como começar quando se esta começando?Como começar quando se esta começando?
Como começar quando se esta começando?
 
Desvendando a arquitetura orientada a eventos
Desvendando a arquitetura orientada a eventosDesvendando a arquitetura orientada a eventos
Desvendando a arquitetura orientada a eventos
 
Clean code com features do java 8 a java 14
Clean code com features do java 8 a java 14Clean code com features do java 8 a java 14
Clean code com features do java 8 a java 14
 
Como começas quando se está começando
Como começas quando se está começandoComo começas quando se está começando
Como começas quando se está começando
 
Refatoracao de codigo
Refatoracao de codigoRefatoracao de codigo
Refatoracao de codigo
 
Desenvolvimento com arquitetura baseada em eventos
Desenvolvimento com arquitetura baseada em eventosDesenvolvimento com arquitetura baseada em eventos
Desenvolvimento com arquitetura baseada em eventos
 
Como fazer um bom desgn de c[odigo em java
Como fazer um bom desgn de c[odigo em javaComo fazer um bom desgn de c[odigo em java
Como fazer um bom desgn de c[odigo em java
 
Workshop git para iniciantes
Workshop git para iniciantesWorkshop git para iniciantes
Workshop git para iniciantes
 
Facilitando a implementação de mensageria em aplicações Java
Facilitando a implementação de mensageria em aplicações JavaFacilitando a implementação de mensageria em aplicações Java
Facilitando a implementação de mensageria em aplicações Java
 
Como uma linguagem de programação pode empoderar uma mulher
Como uma linguagem de programação pode empoderar uma mulherComo uma linguagem de programação pode empoderar uma mulher
Como uma linguagem de programação pode empoderar uma mulher
 
Graphql - o que é, onde e porque usar?
Graphql - o que é, onde e porque usar?Graphql - o que é, onde e porque usar?
Graphql - o que é, onde e porque usar?
 
4 revolucao industrial
4 revolucao industrial4 revolucao industrial
4 revolucao industrial
 
Conhecendo o Jnosql
Conhecendo o JnosqlConhecendo o Jnosql
Conhecendo o Jnosql
 
Arquitetura orientada a eventos em ambientes complexos tdc
Arquitetura orientada a eventos em ambientes complexos tdcArquitetura orientada a eventos em ambientes complexos tdc
Arquitetura orientada a eventos em ambientes complexos tdc
 
Testes de contrato
Testes de contratoTestes de contrato
Testes de contrato
 
Spring Rest
Spring RestSpring Rest
Spring Rest
 
Experiências de quem utiliza a Stack da Netflix e Spring boot em serviços de ...
Experiências de quem utiliza a Stack da Netflix e Spring boot em serviços de ...Experiências de quem utiliza a Stack da Netflix e Spring boot em serviços de ...
Experiências de quem utiliza a Stack da Netflix e Spring boot em serviços de ...
 
Microsserviços, moda ou necessidade?
Microsserviços, moda ou necessidade?Microsserviços, moda ou necessidade?
Microsserviços, moda ou necessidade?
 

Desenvolvendo sistemas gigantes com arquitetura baseada em eventos