SlideShare a Scribd company logo
1 of 18
Download to read offline
Guilherme	
  Elias	
  
                         @guilhermelias	
  
               h/ps://github.com/gelias	
  
             h/p://codingbyexample.org	
  
h/p://br.linkedin.com/in/guilhermeeilas	
  
EDA	
  -­‐	
  Event-­‐driven	
  Architecture	
  	
  

• O que é?

     Padrão de desenvolvimento de 
    
 software :-)

• Serve para?

     Detecção de eventos (sensor - trigger);
     Monitoramento de eventos (monitor);
EDA	
  -­‐	
  Event-­‐driven	
  Architecture	
  	
  

•  CA – Event Condition Action
 E

     Nada mais do que um “regra”!

 
 
 

 Ex.: Sinistro ocorrido!

    Evento: Após o reconhecimento de um sinistro
  Condição: Caso o prejuízo presente 90% do valor do bem
     Ação: Inicia processo de ressarcimento do bem!

  Evento: Após finalizar atendimento via helpdesk
  Ação: Enviar SMS solicitando nota para o atendimento
EDA	
  -­‐	
  Event-­‐driven	
  Architecture	
  	
  

•  CA – Event Condition Action
 E

  • Event :
   … computacionalmente representa algo que ocorreu.
                                                   h/p://en.wikipedia.org/wiki/Event	
  


    
   
  
    
    
 
   … simplesmente uma troca de estado.
                          h/p://en.wikipedia.org/wiki/Event_driven_architecture	
  
EDA	
  -­‐	
  Event-­‐driven	
  Architecture	
  	
  

•  CA – Event Condition Action 
 E

  • Condition :
EDA	
  -­‐	
  Event-­‐driven	
  Architecture	
  	
  

•  CA – Event Condition Action 
 E

  • Action :


         Realização de uma operação;

         Atualização de um estado;
EDA	
  -­‐	
  Event-­‐driven	
  Architecture	
  	
  

•  CA – Event Condition Action 
 E


  
 




        Simples	
                                 Complexa	
  
EDA	
  -­‐	
  Event-­‐driven	
  Architecture	
  	
  

• Camadas de um estrutura EDA

  I.  Event Generator

       Criação/Instalação de sensores;

          … onMouseClick (listener)
          … após criar uma ordem de compra
          … após realizar baixa no estoque
EDA	
  -­‐	
  Event-­‐driven	
  Architecture	
  	
  

• Considere …

     Prover modelagens reusáveis!

     Visar sempre o baixo acoplamento!

     Apenas repassar informações/dados do
    contexto atual;

     Dependencias;
EDA	
  -­‐	
  Event-­‐driven	
  Architecture	
  	
  

• Camadas de um estrutura EDA

  II. Event Channel 

     Mecanismo de tráfego de informações;

       - XML
       - JSON
       - CSV
       - RDF (Resource Description Framework)
                                h/p://www.w3schools.com	
  
EDA	
  -­‐	
  Event-­‐driven	
  Architecture	
  	
  

• Considere …

     Prover facilitadores para a criação do 
    
 “contexto”;

     Quanto menos verboso melhor (JSON)

     Estruturar de forma que seja possível 
    
 pesquisar;
EDA	
  -­‐	
  Event-­‐driven	
  Architecture	
  	
  

• Camadas de um estrutura EDA

  III. Event Processing Engine 

     Onde é IDENTIFICADA e EXECUTADA a 
      “reação”;
EDA	
  -­‐	
  Event-­‐driven	
  Architecture	
  	
  

• Considere …
     Deve possuir custo de processamento 
    
 baixissimo;
     Basicamente um interpretador; 
     Um mesmo evento pode executar ações 
    
 totalmente distintas; 
     Deve conseguir executar eventos de 
    
 forma assíncrona;
     Deve trafegar apenas informações 
      necessárias;
EDA	
  -­‐	
  Event-­‐driven	
  Architecture	
  	
  

• Modularidade / Componentização

     Responsabilidades bem distribuidas;

     Baixo Acoplamento;
EDA	
  -­‐	
  Event-­‐driven	
  Architecture	
  	
  




h/p://marFnfowler.com/arFcles/lmax.html	
  
EDA	
  -­‐	
  Event-­‐driven	
  Architecture	
  	
  

• Onde pode ser útil

     Regras de Negócio (BPM)
     Sistemas de alerta/monitoramento
     Automação de tarefas operacionais

    … onde consiga se criar um regra!
EDA	
  -­‐	
  Event-­‐driven	
  Architecture	
  	
  

• Ferramentas de mercado

     Drools
    
   
   
   http://www.jboss.org/drools/   

     Outras open source
    
   
   
   http://java-source.net/open-source/rule-engines
Referências	
  e	
  Links	
  
 Event-driven Architecture
      http://en.wikipedia.org/wiki/Event-driven_architecture 
 Artigos:
      http://www.di.unipi.it/~brogi/papers/JELIA06.pdf
      http://www.ibm.com/developerworks/websphere/library/techarticles/0810_mcginnes/
     0810_mcginnes.html 
      http://dl.dropbox.com/u/20315902/
     EventDrivenArchitectureOverview_ElementalLinks_Feb2011.pdf 


 Event Sourcing: http://martinfowler.com/eaaDev/EventSourcing.html

 ECA Rules
     http://en.wikipedia.org/wiki/Event_Condition_Action


  Business Process Management
      http://en.wikipedia.org/wiki/Rule_engine 
      http://en.wikipedia.org/wiki/Business_process_management

More Related Content

Similar to EDA Event-driven Architecture

Melhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud ComputingMelhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud ComputingDaniel Checchia
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAmazon Web Services LATAM
 
Arquiteturas de Gerência de Redes
Arquiteturas de Gerência de RedesArquiteturas de Gerência de Redes
Arquiteturas de Gerência de RedesFrederico Madeira
 
Integração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControlIntegração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControlDiego Tremper
 
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...Luiz Costa
 
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...tdc-globalcode
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoLuiz Costa
 
Apresentando CEP - TDC2011 / Trilha SOA
Apresentando CEP - TDC2011 / Trilha SOAApresentando CEP - TDC2011 / Trilha SOA
Apresentando CEP - TDC2011 / Trilha SOApaulosampei
 
Lightning components - o que são, quais os seus objectivos e exemplos práticos
Lightning components - o que são, quais os seus objectivos e exemplos práticosLightning components - o que são, quais os seus objectivos e exemplos práticos
Lightning components - o que são, quais os seus objectivos e exemplos práticosDom Digital
 
Construindo um data warehouse com Pentaho e Docker
Construindo um data warehouse com Pentaho e DockerConstruindo um data warehouse com Pentaho e Docker
Construindo um data warehouse com Pentaho e DockerWellington Marinho
 
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...Amazon Web Services
 
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...Intelie
 
Cloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à práticaCloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à práticaRicardo Martins ☁
 
CNA - A New Way of Designing
CNA - A New Way of DesigningCNA - A New Way of Designing
CNA - A New Way of DesigningDiego Dezembro
 

Similar to EDA Event-driven Architecture (20)

Melhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud ComputingMelhores práticas para Arquitetura em Cloud Computing
Melhores práticas para Arquitetura em Cloud Computing
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
 
Siem on cloud times
Siem on cloud timesSiem on cloud times
Siem on cloud times
 
Arquiteturas de Gerência de Redes
Arquiteturas de Gerência de RedesArquiteturas de Gerência de Redes
Arquiteturas de Gerência de Redes
 
Integração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControlIntegração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControl
 
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
 
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
Apresentando CEP - TDC2011 / Trilha SOA
Apresentando CEP - TDC2011 / Trilha SOAApresentando CEP - TDC2011 / Trilha SOA
Apresentando CEP - TDC2011 / Trilha SOA
 
Windows Server 2008: Gerenciamento
Windows Server 2008: GerenciamentoWindows Server 2008: Gerenciamento
Windows Server 2008: Gerenciamento
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
IoT Frameworks
IoT FrameworksIoT Frameworks
IoT Frameworks
 
Lightning components - o que são, quais os seus objectivos e exemplos práticos
Lightning components - o que são, quais os seus objectivos e exemplos práticosLightning components - o que são, quais os seus objectivos e exemplos práticos
Lightning components - o que são, quais os seus objectivos e exemplos práticos
 
Construindo um data warehouse com Pentaho e Docker
Construindo um data warehouse com Pentaho e DockerConstruindo um data warehouse com Pentaho e Docker
Construindo um data warehouse com Pentaho e Docker
 
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS -  ARC201 - ...
Arquiteturas e Estratégias para Criar Aplicações Modernas na AWS - ARC201 - ...
 
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...
 
Cloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à práticaCloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à prática
 
CNA - A New Way of Designing
CNA - A New Way of DesigningCNA - A New Way of Designing
CNA - A New Way of Designing
 

More from Guilherme Elias

GUDAY 2016 - Microserviços e o futuro
GUDAY 2016 - Microserviços e o futuroGUDAY 2016 - Microserviços e o futuro
GUDAY 2016 - Microserviços e o futuroGuilherme Elias
 
Continuous Delivery. Em Busca da Entrega Perfeita!
Continuous Delivery. Em Busca da Entrega Perfeita!Continuous Delivery. Em Busca da Entrega Perfeita!
Continuous Delivery. Em Busca da Entrega Perfeita!Guilherme Elias
 
Continuous Delivery - Em Busca da Entrega Perfeita!
Continuous Delivery - Em Busca da Entrega Perfeita!Continuous Delivery - Em Busca da Entrega Perfeita!
Continuous Delivery - Em Busca da Entrega Perfeita!Guilherme Elias
 
AWS Auto Scaling #Parte1
AWS Auto Scaling #Parte1AWS Auto Scaling #Parte1
AWS Auto Scaling #Parte1Guilherme Elias
 
Testes + Automacao + Atitude = Toolkit para a melhoria continua
Testes + Automacao + Atitude = Toolkit para a melhoria continuaTestes + Automacao + Atitude = Toolkit para a melhoria continua
Testes + Automacao + Atitude = Toolkit para a melhoria continuaGuilherme Elias
 
Continuous Delivery Trainning
Continuous Delivery TrainningContinuous Delivery Trainning
Continuous Delivery TrainningGuilherme Elias
 

More from Guilherme Elias (12)

GUDAY 2016 - Microserviços e o futuro
GUDAY 2016 - Microserviços e o futuroGUDAY 2016 - Microserviços e o futuro
GUDAY 2016 - Microserviços e o futuro
 
XpConf
XpConfXpConf
XpConf
 
Continuous Delivery. Em Busca da Entrega Perfeita!
Continuous Delivery. Em Busca da Entrega Perfeita!Continuous Delivery. Em Busca da Entrega Perfeita!
Continuous Delivery. Em Busca da Entrega Perfeita!
 
Continuous Delivery - Em Busca da Entrega Perfeita!
Continuous Delivery - Em Busca da Entrega Perfeita!Continuous Delivery - Em Busca da Entrega Perfeita!
Continuous Delivery - Em Busca da Entrega Perfeita!
 
Aws dev tools
Aws dev toolsAws dev tools
Aws dev tools
 
Torquebox
TorqueboxTorquebox
Torquebox
 
AWS Auto Scaling #Parte1
AWS Auto Scaling #Parte1AWS Auto Scaling #Parte1
AWS Auto Scaling #Parte1
 
Agile official
Agile officialAgile official
Agile official
 
Windows Phone
Windows Phone Windows Phone
Windows Phone
 
Testes + Automacao + Atitude = Toolkit para a melhoria continua
Testes + Automacao + Atitude = Toolkit para a melhoria continuaTestes + Automacao + Atitude = Toolkit para a melhoria continua
Testes + Automacao + Atitude = Toolkit para a melhoria continua
 
Continuous Delivery Trainning
Continuous Delivery TrainningContinuous Delivery Trainning
Continuous Delivery Trainning
 
GettingThingsDone
GettingThingsDoneGettingThingsDone
GettingThingsDone
 

EDA Event-driven Architecture

  • 1. Guilherme  Elias   @guilhermelias   h/ps://github.com/gelias   h/p://codingbyexample.org   h/p://br.linkedin.com/in/guilhermeeilas  
  • 2. EDA  -­‐  Event-­‐driven  Architecture     • O que é?  Padrão de desenvolvimento de software :-) • Serve para?  Detecção de eventos (sensor - trigger);  Monitoramento de eventos (monitor);
  • 3. EDA  -­‐  Event-­‐driven  Architecture     •  CA – Event Condition Action E  Nada mais do que um “regra”! Ex.: Sinistro ocorrido! Evento: Após o reconhecimento de um sinistro Condição: Caso o prejuízo presente 90% do valor do bem Ação: Inicia processo de ressarcimento do bem! Evento: Após finalizar atendimento via helpdesk Ação: Enviar SMS solicitando nota para o atendimento
  • 4. EDA  -­‐  Event-­‐driven  Architecture     •  CA – Event Condition Action E • Event : … computacionalmente representa algo que ocorreu. h/p://en.wikipedia.org/wiki/Event   … simplesmente uma troca de estado. h/p://en.wikipedia.org/wiki/Event_driven_architecture  
  • 5. EDA  -­‐  Event-­‐driven  Architecture     •  CA – Event Condition Action E • Condition :
  • 6. EDA  -­‐  Event-­‐driven  Architecture     •  CA – Event Condition Action E • Action :  Realização de uma operação;  Atualização de um estado;
  • 7. EDA  -­‐  Event-­‐driven  Architecture     •  CA – Event Condition Action E Simples   Complexa  
  • 8. EDA  -­‐  Event-­‐driven  Architecture     • Camadas de um estrutura EDA I.  Event Generator  Criação/Instalação de sensores; … onMouseClick (listener) … após criar uma ordem de compra … após realizar baixa no estoque
  • 9. EDA  -­‐  Event-­‐driven  Architecture     • Considere …  Prover modelagens reusáveis!  Visar sempre o baixo acoplamento!  Apenas repassar informações/dados do contexto atual;  Dependencias;
  • 10. EDA  -­‐  Event-­‐driven  Architecture     • Camadas de um estrutura EDA II. Event Channel  Mecanismo de tráfego de informações; - XML - JSON - CSV - RDF (Resource Description Framework) h/p://www.w3schools.com  
  • 11. EDA  -­‐  Event-­‐driven  Architecture     • Considere …  Prover facilitadores para a criação do “contexto”;  Quanto menos verboso melhor (JSON)  Estruturar de forma que seja possível pesquisar;
  • 12. EDA  -­‐  Event-­‐driven  Architecture     • Camadas de um estrutura EDA III. Event Processing Engine  Onde é IDENTIFICADA e EXECUTADA a “reação”;
  • 13. EDA  -­‐  Event-­‐driven  Architecture     • Considere …  Deve possuir custo de processamento baixissimo;  Basicamente um interpretador;  Um mesmo evento pode executar ações totalmente distintas;  Deve conseguir executar eventos de forma assíncrona;  Deve trafegar apenas informações necessárias;
  • 14. EDA  -­‐  Event-­‐driven  Architecture     • Modularidade / Componentização  Responsabilidades bem distribuidas;  Baixo Acoplamento;
  • 15. EDA  -­‐  Event-­‐driven  Architecture     h/p://marFnfowler.com/arFcles/lmax.html  
  • 16. EDA  -­‐  Event-­‐driven  Architecture     • Onde pode ser útil  Regras de Negócio (BPM)  Sistemas de alerta/monitoramento  Automação de tarefas operacionais … onde consiga se criar um regra!
  • 17. EDA  -­‐  Event-­‐driven  Architecture     • Ferramentas de mercado  Drools http://www.jboss.org/drools/  Outras open source http://java-source.net/open-source/rule-engines
  • 18. Referências  e  Links    Event-driven Architecture  http://en.wikipedia.org/wiki/Event-driven_architecture  Artigos:  http://www.di.unipi.it/~brogi/papers/JELIA06.pdf  http://www.ibm.com/developerworks/websphere/library/techarticles/0810_mcginnes/ 0810_mcginnes.html  http://dl.dropbox.com/u/20315902/ EventDrivenArchitectureOverview_ElementalLinks_Feb2011.pdf  Event Sourcing: http://martinfowler.com/eaaDev/EventSourcing.html  ECA Rules  http://en.wikipedia.org/wiki/Event_Condition_Action   Business Process Management  http://en.wikipedia.org/wiki/Rule_engine  http://en.wikipedia.org/wiki/Business_process_management