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.
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;
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