SlideShare una empresa de Scribd logo
1 de 18
Aprendizados de uma arquitetura
  dirigida a eventos (EDA/ECA)
                …
 Do conceito ao multiplataforma

                                          Guilherme Elias
                                          @guilhermelias
                               https://github.com/gelias
                            http://codingbyexample.org
               http://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
EDA - Event-driven Architecture

•ECA – Event Condition Action

    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!
EDA - Event-driven Architecture

•ECA – Event Condition Action

 • Event :

   … computacionalmente representa algo que
 ocorreu.                    http://en.wikipedia.org/wiki/Event




                 … simplesmente uma troca de
                         http://en.wikipedia.org/wiki/Event_driven_architecture

    estado.
EDA - Event-driven Architecture

•ECA – Event Condition Action

 • Condition :
EDA - Event-driven Architecture

•ECA – Event Condition Action

 • Action :


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

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

•ECA – Event Condition Action




      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
EDA - Event-driven Architecture

• Considere …

    Prover modelagens reusáveis!

    Visar sempre o baixo
   acoplamento!

    Apenas repassar
   informações/dados do contexto
   atual;
EDA - Event-driven Architecture

• Camadas de um estrutura EDA

 II. Event Channel

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

      -   XML
      -   JSON
      -   CSV
                         http://www.w3schools.com
      -   RDF (Resource Description
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
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;
EDA - Event-driven Architecture

• Modularidade / Componentização

    Responsabilidades bem
   distribuidas;

    Baixo Acoplamento;
EDA - Event-driven Architecture




http://martinfowler.com/articles/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_mcg

    
    http://dl.dropbox.com/u/20315902/EventDrivenArchitectureOverview_Elemen
    talLinks_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

Más contenido relacionado

Similar a EDA aprendizados arquitetura dirigida eventos

Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Tiago Marchetti Dolphine
 
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
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4Luciano Condé
 
Produtividade infinito e além com We.js
Produtividade infinito e além com We.jsProdutividade infinito e além com We.js
Produtividade infinito e além com We.jsAlberto Souza
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifaguestea329c
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsHoracio Ibrahim
 
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
 
IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScriptHeider Lopes
 
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
 
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
 
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaAzure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaRodrigo Marques Teixeira
 
SQLServerDF XIII - xEvents
SQLServerDF XIII - xEventsSQLServerDF XIII - xEvents
SQLServerDF XIII - xEventsLuciano Moreira
 

Similar a EDA aprendizados arquitetura dirigida eventos (20)

Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
 
Siem on cloud times
Siem on cloud timesSiem on cloud times
Siem on cloud times
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
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
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4Programação em Camadas com Entity Framework 4
Programação em Camadas com Entity Framework 4
 
Produtividade infinito e além com We.js
Produtividade infinito e além com We.jsProdutividade infinito e além com We.js
Produtividade infinito e além com We.js
 
IoT Frameworks
IoT FrameworksIoT Frameworks
IoT Frameworks
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifa
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Keynote nuvem estaleiro_ics
Keynote nuvem estaleiro_icsKeynote nuvem estaleiro_ics
Keynote nuvem estaleiro_ics
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
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 - ...
 
IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScript
 
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
 
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
 
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaAzure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
SQLServerDF XIII - xEvents
SQLServerDF XIII - xEventsSQLServerDF XIII - xEvents
SQLServerDF XIII - xEvents
 

Más de 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
 
Como o PostgreSQL ajuda a uMov.me a crescer!!
Como o PostgreSQL ajuda a uMov.me a crescer!!Como o PostgreSQL ajuda a uMov.me a crescer!!
Como o PostgreSQL ajuda a uMov.me a crescer!!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
 
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
 
FISL 14: Troca de figurinhas - Como criar um ambiente de aprendizagem em sua ...
FISL 14: Troca de figurinhas - Como criar um ambiente de aprendizagem em sua ...FISL 14: Troca de figurinhas - Como criar um ambiente de aprendizagem em sua ...
FISL 14: Troca de figurinhas - Como criar um ambiente de aprendizagem em sua ...Guilherme Elias
 
TDC 2013 Cultura Aprendizagem
TDC 2013 Cultura AprendizagemTDC 2013 Cultura Aprendizagem
TDC 2013 Cultura AprendizagemGuilherme Elias
 
AWS Auto Scaling #Parte1
AWS Auto Scaling #Parte1AWS Auto Scaling #Parte1
AWS Auto Scaling #Parte1Guilherme Elias
 
APIs, Services, Cloud, Mobile
APIs, Services, Cloud, MobileAPIs, Services, Cloud, Mobile
APIs, Services, Cloud, MobileGuilherme 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
 
Mais Acão ... Menos "Falação" Resulta em ... Motivacao
Mais Acão ... Menos "Falação"  Resulta em ... MotivacaoMais Acão ... Menos "Falação"  Resulta em ... Motivacao
Mais Acão ... Menos "Falação" Resulta em ... MotivacaoGuilherme Elias
 
Continuous Delivery Trainning
Continuous Delivery TrainningContinuous Delivery Trainning
Continuous Delivery TrainningGuilherme Elias
 
TDD na Veia! Mas o Hello World continua sem cobertura
TDD na Veia! Mas o Hello World continua sem coberturaTDD na Veia! Mas o Hello World continua sem cobertura
TDD na Veia! Mas o Hello World continua sem coberturaGuilherme Elias
 
GUTSDay - TDD na veia! Mas o hello world continua sem cobertura :-(
GUTSDay - TDD na veia! Mas o hello world continua sem cobertura :-(GUTSDay - TDD na veia! Mas o hello world continua sem cobertura :-(
GUTSDay - TDD na veia! Mas o hello world continua sem cobertura :-(Guilherme Elias
 

Más de Guilherme Elias (19)

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
 
Como o PostgreSQL ajuda a uMov.me a crescer!!
Como o PostgreSQL ajuda a uMov.me a crescer!!Como o PostgreSQL ajuda a uMov.me a crescer!!
Como o PostgreSQL ajuda a uMov.me a crescer!!
 
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!
 
FISL 14: Troca de figurinhas - Como criar um ambiente de aprendizagem em sua ...
FISL 14: Troca de figurinhas - Como criar um ambiente de aprendizagem em sua ...FISL 14: Troca de figurinhas - Como criar um ambiente de aprendizagem em sua ...
FISL 14: Troca de figurinhas - Como criar um ambiente de aprendizagem em sua ...
 
TDC 2013 Cultura Aprendizagem
TDC 2013 Cultura AprendizagemTDC 2013 Cultura Aprendizagem
TDC 2013 Cultura Aprendizagem
 
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
 
APIs, Services, Cloud, Mobile
APIs, Services, Cloud, MobileAPIs, Services, Cloud, Mobile
APIs, Services, Cloud, Mobile
 
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
 
Mais Acão ... Menos "Falação" Resulta em ... Motivacao
Mais Acão ... Menos "Falação"  Resulta em ... MotivacaoMais Acão ... Menos "Falação"  Resulta em ... Motivacao
Mais Acão ... Menos "Falação" Resulta em ... Motivacao
 
Continuous Delivery Trainning
Continuous Delivery TrainningContinuous Delivery Trainning
Continuous Delivery Trainning
 
TDD na Veia! Mas o Hello World continua sem cobertura
TDD na Veia! Mas o Hello World continua sem coberturaTDD na Veia! Mas o Hello World continua sem cobertura
TDD na Veia! Mas o Hello World continua sem cobertura
 
GUTSDay - TDD na veia! Mas o hello world continua sem cobertura :-(
GUTSDay - TDD na veia! Mas o hello world continua sem cobertura :-(GUTSDay - TDD na veia! Mas o hello world continua sem cobertura :-(
GUTSDay - TDD na veia! Mas o hello world continua sem cobertura :-(
 
GettingThingsDone
GettingThingsDoneGettingThingsDone
GettingThingsDone
 

EDA aprendizados arquitetura dirigida eventos

  • 1. Aprendizados de uma arquitetura dirigida a eventos (EDA/ECA) … Do conceito ao multiplataforma Guilherme Elias @guilhermelias https://github.com/gelias http://codingbyexample.org http://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
  • 3. EDA - Event-driven Architecture •ECA – Event Condition Action  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!
  • 4. EDA - Event-driven Architecture •ECA – Event Condition Action • Event : … computacionalmente representa algo que ocorreu. http://en.wikipedia.org/wiki/Event … simplesmente uma troca de http://en.wikipedia.org/wiki/Event_driven_architecture estado.
  • 5. EDA - Event-driven Architecture •ECA – Event Condition Action • Condition :
  • 6. EDA - Event-driven Architecture •ECA – Event Condition Action • Action :  Realização de uma operação;  Atualização de um estado;
  • 7. EDA - Event-driven Architecture •ECA – Event Condition Action 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
  • 9. EDA - Event-driven Architecture • Considere …  Prover modelagens reusáveis!  Visar sempre o baixo acoplamento!  Apenas repassar informações/dados do contexto atual;
  • 10. EDA - Event-driven Architecture • Camadas de um estrutura EDA II. Event Channel  Mecanismo de tráfego de informações; - XML - JSON - CSV http://www.w3schools.com - RDF (Resource Description
  • 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
  • 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;
  • 14. EDA - Event-driven Architecture • Modularidade / Componentização  Responsabilidades bem distribuidas;  Baixo Acoplamento;
  • 15. EDA - Event-driven Architecture http://martinfowler.com/articles/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_mcg  http://dl.dropbox.com/u/20315902/EventDrivenArchitectureOverview_Elemen talLinks_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