SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
COMO UMA APLICAÇÃO
BASEADA EM FLUXO DE
DADOS PODE AMPLIAR A
SEGURANÇA EM CRECHES
FINIT – Negócios – Inovação - Tecnologia
Expominas
01 de Novembro de 2017
SOBRE OS AUTORES
• Ivan Paulovich Pinheiro Gomes
Graduando em Ciência da Computação
Centro Universitário de Belo Horizonte – UNI-BH
ivan@100loop.com
• Diva de Souza e Silva Rodrigues
Doutora em Informática, PUC-Rio, 2006.
Professora do Centro Universitário de Belo Horizonte – UNI-BH
diva.rodrigues@prof.unibh.br
COMO OS DADOS SÃO ARMAZENADOS
ATUALMENTE?
Código Funcionário Nome Salário Código Departamento
42 André Gomes R$5000,00 12
70 Vinícius Lima R$4500,00 29
77 Luciano Reis R$5200,00 17
Tabela de Funcionários em 17 de agosto
COMO OS DADOS SÃO ARMAZENADOS
ATUALMENTE?
Código Funcionário Nome Salário Código Departamento
42 André Gomes R$5000,00 12
70 Vinícius Lima R$4500,00 29
77 Luciano Reis R$5200,00 17
Tabela de Funcionários em 17 de agosto
Código Funcionário Nome Salário Código Departamento
42 André Gomes R$6000,00 12
70 Vinícius Lima R$4500,00 29
77 Luciano Reis R$5200,00 17
Tabela de Funcionários em 18 de agosto
Por quê?
Quem?
Quando?
COMO OS DADOS SÃO ARMAZENADOS
ATUALMENTE?
• Bancos de Dados Relacionais
• Informações mais antigas são destruídas a cada UPDATE e DELETE.
• Não armazena o usuário, a motivação e o horário da alteração.
(A não ser que faça parte do modelo)
• Existe concorrência entre escrita e leitura.
ARMAZENAMENTO EM FLUXO DE DADOS
C/C Saldo
2010-0 R$ 200,00
4030-1 R$ 300,00
Tabela de Saldos por C/C
Extrato das Contas Correntes
ProjeçãoPublicação
1 Depositado
C/C: 4030-1
Data: 17/08/2017
Valor: R$ 500,00
2 Depositado
C/C: 2010-0
Data: 20/08/2017
Valor: R$ 300,00
3 Sacado
C/C: 2010-0
Data: 23/08/2017
Valor: R$ 100,00
4 Sacado
C/C: 4030-1
Data: 25/08/2017
Valor: R$ 200,00
Sabemos o porquê,
o quem, e o quando de
cada alteração
A METODOLOGIA
1. Estudar o negócio de uma Escola Infantil
2. Definir o Domínio
3. Modelar o Domínio utilizando Domain-Driven Design
4. Construir uma linguagem ubíqua entre o Negócio e o Desenvolvimento
5. Implementar a solução com as melhores práticas arquiteturais
O DOMÍNIO DE UMA ESCOLA INFANTIL
Professor
Familiar
Criança
Receber Criança Escola
Entregar Criança
Abrir Expediente
Fechar Expediente
Deixar Criança
Buscar Criança
Definir Responsável
Iniciar ano letivo
Adicionar Criança
DIAGRAMA DA SOLUÇÃO
Stream
Producer
API
Consumer
APP
Banco de Dados
Processo de Escrita:
Primeiro no Stream e depois no Banco de Dados
Leitura diretamente do Banco de Dados
PRODUÇÃO DE EVENTOS
Adicionar
Criança
Command
Adicionar
Criança
Command
Handler
Criança
Adicionada
Domain
Event
Armazenamento Permanente de
Eventos do Domínio em um Stream
Criança
Adicionada
Domain
Event
CONSUMO E PROJEÇÃO DE EVENTOS
Criança
Adicionada
Domain
Event
Criança
Adicionada
Domain
Event
Handler
Código Criança Nome Data de
Nascimento
Código
Família
992
Marina
Gomes
17/junho/2010 19
Projeção dos Eventos de Domínio em
um banco de dados SQL ou NoSQL
OS DESAFIOS TÉCNICOS SUPERADOS
• Arquitetura para Microserviços
• Domain-Driven Design (DDD)
• Aggregates
• Event Sourcing
• Command-Query-Responsibility-Segregation (CQRS)
AS DIFICULDADES
• O desenvolvimento com DDD exige um profundo conhecimento do Domínio e dos
princípios de OO para a sua correta modelagem
• Necessário manter dois sistemas de armazenamento
(Stream e banco de dados)
• Complexidade dos Princípios de Microserviços e da comunicação distribuída
OS BENEFÍCIOS
1. O sistema nasce com Auditoria de todas as operações.
2. Alta performance de escrita em Stream.
3. Evita o Ponto único de falha ao armazenar dados distribuídos.
4. Permite implementar funcionalidades não previstas no começo do projeto.
5. É possível voltar no tempo e descobrir a origem de qualquer mudança.
6. Pronto para Big Data!
APLICAÇÕES EM SEGURANÇA DE CRECHES
1. Nesta solução todo o histórico de quem entregou e retirou a criança é registrado.
2. A partir do histórico é possível identificar se a criança está sendo retirada fora de
algum padrão seguro como
• Fora do horário
• Ou por uma pessoa desconhecida.
3. Resguarda a instituição caso ela seja questionada o por que de entregar a criança
a determinada pessoa.
ONDE AS TÉCNICAS PODEM SER
APLICADAS?
• Mercado Financeiro, Contabilidade
• Bancos
• Saúde
• Redes Sociais
• Aplicações Reativas a Eventos
• Sistemas que possuem rastreamento do comportamento do usuário
CÓDIGOS E RESULTADOS
MFA
Microserviço para Gerenciamento de
Entrada e Saída de Crianças
com implementação de Event Sourcing
https://github.com/ivanpaulovich/mfa
Jambo
Microserviço para Gerenciamento de Conteúdo de
blogs pessoais com implementação de
Event Sourcing
https://github.com/ivanpaulovich/jambo
REFERÊNCIAS
• VERNON, V. Implementing Domain-Driven Design 1st Edition.
United States: Addison-Wesley Professional, 2013. 656 p.
• HALL, G. M. Adaptive Code via C#: Agile coding with design patterns and SOLID
principles (Developer Reference) 1st Edition.
United States: Addison-Wesley, 2014. 416 p.
PERGUNTAS

Mais conteúdo relacionado

Semelhante a Aplicação de Fluxo de Dados amplia segurança em creches

S2 Business - Institucional - 2013
S2 Business - Institucional - 2013S2 Business - Institucional - 2013
S2 Business - Institucional - 2013Danilo Gallo
 
SOA Expert Versão Curta
SOA Expert Versão CurtaSOA Expert Versão Curta
SOA Expert Versão CurtaUros Rogulja
 
Aula 1 - Conceitos de TI e PDTI
Aula 1 - Conceitos de TI e PDTIAula 1 - Conceitos de TI e PDTI
Aula 1 - Conceitos de TI e PDTIFilipo Mór
 
1a Web Aula - Gestão de Tecnologia da Informação.pdf
1a Web Aula - Gestão de Tecnologia da Informação.pdf1a Web Aula - Gestão de Tecnologia da Informação.pdf
1a Web Aula - Gestão de Tecnologia da Informação.pdfDimas Francisco
 
Apresentação - Luby Fábrica de Software
Apresentação - Luby Fábrica de SoftwareApresentação - Luby Fábrica de Software
Apresentação - Luby Fábrica de SoftwareAlon Lubieniecki
 
IAS: Como o Instituto Ayrton Senna organizou a seleção de sua plataforma LMS
IAS: Como o Instituto Ayrton Senna organizou a seleção de sua plataforma LMSIAS: Como o Instituto Ayrton Senna organizou a seleção de sua plataforma LMS
IAS: Como o Instituto Ayrton Senna organizou a seleção de sua plataforma LMSD2L Barry
 
Microstartegy Symposium
Microstartegy SymposiumMicrostartegy Symposium
Microstartegy SymposiumEric Martins
 
CV - Silvio Custodio - Português - Janeiro-2017
CV - Silvio Custodio - Português - Janeiro-2017CV - Silvio Custodio - Português - Janeiro-2017
CV - Silvio Custodio - Português - Janeiro-2017Silvio Custodio
 
Aula Magna Sobre BI & BigData na UNIA, Luanda - Angola
Aula Magna Sobre BI & BigData na UNIA, Luanda - AngolaAula Magna Sobre BI & BigData na UNIA, Luanda - Angola
Aula Magna Sobre BI & BigData na UNIA, Luanda - Angolaalexculpado
 
A evolução do Business Intelligence
A evolução do Business IntelligenceA evolução do Business Intelligence
A evolução do Business IntelligenceGustavo Santade
 
VaiAcademy_Ementa_Americanas.pdf
VaiAcademy_Ementa_Americanas.pdfVaiAcademy_Ementa_Americanas.pdf
VaiAcademy_Ementa_Americanas.pdfMarcio Cardoso
 
[GetNinjas] Business Intelligence Workshop @ Google Campus SP
[GetNinjas] Business Intelligence Workshop @ Google Campus SP[GetNinjas] Business Intelligence Workshop @ Google Campus SP
[GetNinjas] Business Intelligence Workshop @ Google Campus SPBernardo Srulzon
 
Agilidade em escala - Agile Brazil 2018
Agilidade em escala  - Agile Brazil 2018Agilidade em escala  - Agile Brazil 2018
Agilidade em escala - Agile Brazil 2018Ewerton Santos (Ton)
 

Semelhante a Aplicação de Fluxo de Dados amplia segurança em creches (20)

Diversas Ferramentas de dados
Diversas Ferramentas de dadosDiversas Ferramentas de dados
Diversas Ferramentas de dados
 
Estudo de Caso: O Hotel do Bosque
Estudo de Caso: O Hotel do BosqueEstudo de Caso: O Hotel do Bosque
Estudo de Caso: O Hotel do Bosque
 
W2CONN Institucional
W2CONN InstitucionalW2CONN Institucional
W2CONN Institucional
 
S2 Business - Institucional - 2013
S2 Business - Institucional - 2013S2 Business - Institucional - 2013
S2 Business - Institucional - 2013
 
SOA Expert Versão Curta
SOA Expert Versão CurtaSOA Expert Versão Curta
SOA Expert Versão Curta
 
Slide 1.pdf
Slide 1.pdfSlide 1.pdf
Slide 1.pdf
 
Aula 1 - Conceitos de TI e PDTI
Aula 1 - Conceitos de TI e PDTIAula 1 - Conceitos de TI e PDTI
Aula 1 - Conceitos de TI e PDTI
 
1a Web Aula - Gestão de Tecnologia da Informação.pdf
1a Web Aula - Gestão de Tecnologia da Informação.pdf1a Web Aula - Gestão de Tecnologia da Informação.pdf
1a Web Aula - Gestão de Tecnologia da Informação.pdf
 
Organizações Virtuais
Organizações VirtuaisOrganizações Virtuais
Organizações Virtuais
 
Apresentação - Luby Fábrica de Software
Apresentação - Luby Fábrica de SoftwareApresentação - Luby Fábrica de Software
Apresentação - Luby Fábrica de Software
 
IAS: Como o Instituto Ayrton Senna organizou a seleção de sua plataforma LMS
IAS: Como o Instituto Ayrton Senna organizou a seleção de sua plataforma LMSIAS: Como o Instituto Ayrton Senna organizou a seleção de sua plataforma LMS
IAS: Como o Instituto Ayrton Senna organizou a seleção de sua plataforma LMS
 
Microstartegy Symposium
Microstartegy SymposiumMicrostartegy Symposium
Microstartegy Symposium
 
CV - Silvio Custodio - Português - Janeiro-2017
CV - Silvio Custodio - Português - Janeiro-2017CV - Silvio Custodio - Português - Janeiro-2017
CV - Silvio Custodio - Português - Janeiro-2017
 
Aula Magna Sobre BI & BigData na UNIA, Luanda - Angola
Aula Magna Sobre BI & BigData na UNIA, Luanda - AngolaAula Magna Sobre BI & BigData na UNIA, Luanda - Angola
Aula Magna Sobre BI & BigData na UNIA, Luanda - Angola
 
A evolução do Business Intelligence
A evolução do Business IntelligenceA evolução do Business Intelligence
A evolução do Business Intelligence
 
Será Mesmo o Cientista de Dados a Profissão do Futuro?
Será Mesmo o Cientista de Dados a Profissão do Futuro?Será Mesmo o Cientista de Dados a Profissão do Futuro?
Será Mesmo o Cientista de Dados a Profissão do Futuro?
 
VaiAcademy_Ementa_Americanas.pdf
VaiAcademy_Ementa_Americanas.pdfVaiAcademy_Ementa_Americanas.pdf
VaiAcademy_Ementa_Americanas.pdf
 
SEBRAE - Inteligência setorial
SEBRAE - Inteligência setorialSEBRAE - Inteligência setorial
SEBRAE - Inteligência setorial
 
[GetNinjas] Business Intelligence Workshop @ Google Campus SP
[GetNinjas] Business Intelligence Workshop @ Google Campus SP[GetNinjas] Business Intelligence Workshop @ Google Campus SP
[GetNinjas] Business Intelligence Workshop @ Google Campus SP
 
Agilidade em escala - Agile Brazil 2018
Agilidade em escala  - Agile Brazil 2018Agilidade em escala  - Agile Brazil 2018
Agilidade em escala - Agile Brazil 2018
 

Mais de Ivan Paulovich

DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichIvan Paulovich
 
Clean Architecture Essentials - Stockholm Software Craftsmanship
Clean Architecture Essentials - Stockholm Software CraftsmanshipClean Architecture Essentials - Stockholm Software Craftsmanship
Clean Architecture Essentials - Stockholm Software CraftsmanshipIvan Paulovich
 
Clean Architecture Essentials @ivanpaulovich
Clean Architecture Essentials @ivanpaulovichClean Architecture Essentials @ivanpaulovich
Clean Architecture Essentials @ivanpaulovichIvan Paulovich
 
Building rich domain models with ddd and tdd ivan paulovich - betsson
Building rich domain models with ddd and tdd   ivan paulovich - betssonBuilding rich domain models with ddd and tdd   ivan paulovich - betsson
Building rich domain models with ddd and tdd ivan paulovich - betssonIvan Paulovich
 
Moving to Microservices
Moving to MicroservicesMoving to Microservices
Moving to MicroservicesIvan Paulovich
 
Produzindo e consumindo um stream de eventos
Produzindo e consumindo um stream de eventosProduzindo e consumindo um stream de eventos
Produzindo e consumindo um stream de eventosIvan Paulovich
 
Aggregates com Event Sourcing
Aggregates com Event SourcingAggregates com Event Sourcing
Aggregates com Event SourcingIvan Paulovich
 
Estudo do eShopOnContainers
Estudo do eShopOnContainersEstudo do eShopOnContainers
Estudo do eShopOnContainersIvan Paulovich
 
Introdução ao Domain-Driven-Design (DDD)
Introdução ao Domain-Driven-Design (DDD)Introdução ao Domain-Driven-Design (DDD)
Introdução ao Domain-Driven-Design (DDD)Ivan Paulovich
 
Princípios SOLID de OO usando .NET
Princípios SOLID de OO usando .NETPrincípios SOLID de OO usando .NET
Princípios SOLID de OO usando .NETIvan Paulovich
 
Utilize o vso e publique imagens docker Global Azure Bootcamp - BH
Utilize o vso e publique imagens docker Global Azure Bootcamp - BHUtilize o vso e publique imagens docker Global Azure Bootcamp - BH
Utilize o vso e publique imagens docker Global Azure Bootcamp - BHIvan Paulovich
 
Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014Ivan Paulovich
 
Mercado de ti e suas oportunidades
Mercado de ti e suas oportunidadesMercado de ti e suas oportunidades
Mercado de ti e suas oportunidadesIvan Paulovich
 
Construindo Apps Com SignalR
Construindo Apps Com SignalRConstruindo Apps Com SignalR
Construindo Apps Com SignalRIvan Paulovich
 
Construindo apps de tempo real com SignalR
Construindo apps de tempo real com SignalRConstruindo apps de tempo real com SignalR
Construindo apps de tempo real com SignalRIvan Paulovich
 
Construindo Apps com ASP.NET SignalR
Construindo Apps com ASP.NET SignalRConstruindo Apps com ASP.NET SignalR
Construindo Apps com ASP.NET SignalRIvan Paulovich
 
Levando sua aplicação para a nuvem
Levando sua aplicação para a nuvemLevando sua aplicação para a nuvem
Levando sua aplicação para a nuvemIvan Paulovich
 
Conhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web APIConhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web APIIvan Paulovich
 
Criando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Criando aplicativos para Windows 8 usando apenas HTML5 e JavascriptCriando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Criando aplicativos para Windows 8 usando apenas HTML5 e JavascriptIvan Paulovich
 

Mais de Ivan Paulovich (19)

DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan Paulovich
 
Clean Architecture Essentials - Stockholm Software Craftsmanship
Clean Architecture Essentials - Stockholm Software CraftsmanshipClean Architecture Essentials - Stockholm Software Craftsmanship
Clean Architecture Essentials - Stockholm Software Craftsmanship
 
Clean Architecture Essentials @ivanpaulovich
Clean Architecture Essentials @ivanpaulovichClean Architecture Essentials @ivanpaulovich
Clean Architecture Essentials @ivanpaulovich
 
Building rich domain models with ddd and tdd ivan paulovich - betsson
Building rich domain models with ddd and tdd   ivan paulovich - betssonBuilding rich domain models with ddd and tdd   ivan paulovich - betsson
Building rich domain models with ddd and tdd ivan paulovich - betsson
 
Moving to Microservices
Moving to MicroservicesMoving to Microservices
Moving to Microservices
 
Produzindo e consumindo um stream de eventos
Produzindo e consumindo um stream de eventosProduzindo e consumindo um stream de eventos
Produzindo e consumindo um stream de eventos
 
Aggregates com Event Sourcing
Aggregates com Event SourcingAggregates com Event Sourcing
Aggregates com Event Sourcing
 
Estudo do eShopOnContainers
Estudo do eShopOnContainersEstudo do eShopOnContainers
Estudo do eShopOnContainers
 
Introdução ao Domain-Driven-Design (DDD)
Introdução ao Domain-Driven-Design (DDD)Introdução ao Domain-Driven-Design (DDD)
Introdução ao Domain-Driven-Design (DDD)
 
Princípios SOLID de OO usando .NET
Princípios SOLID de OO usando .NETPrincípios SOLID de OO usando .NET
Princípios SOLID de OO usando .NET
 
Utilize o vso e publique imagens docker Global Azure Bootcamp - BH
Utilize o vso e publique imagens docker Global Azure Bootcamp - BHUtilize o vso e publique imagens docker Global Azure Bootcamp - BH
Utilize o vso e publique imagens docker Global Azure Bootcamp - BH
 
Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014
 
Mercado de ti e suas oportunidades
Mercado de ti e suas oportunidadesMercado de ti e suas oportunidades
Mercado de ti e suas oportunidades
 
Construindo Apps Com SignalR
Construindo Apps Com SignalRConstruindo Apps Com SignalR
Construindo Apps Com SignalR
 
Construindo apps de tempo real com SignalR
Construindo apps de tempo real com SignalRConstruindo apps de tempo real com SignalR
Construindo apps de tempo real com SignalR
 
Construindo Apps com ASP.NET SignalR
Construindo Apps com ASP.NET SignalRConstruindo Apps com ASP.NET SignalR
Construindo Apps com ASP.NET SignalR
 
Levando sua aplicação para a nuvem
Levando sua aplicação para a nuvemLevando sua aplicação para a nuvem
Levando sua aplicação para a nuvem
 
Conhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web APIConhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web API
 
Criando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Criando aplicativos para Windows 8 usando apenas HTML5 e JavascriptCriando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Criando aplicativos para Windows 8 usando apenas HTML5 e Javascript
 

Aplicação de Fluxo de Dados amplia segurança em creches

  • 1. COMO UMA APLICAÇÃO BASEADA EM FLUXO DE DADOS PODE AMPLIAR A SEGURANÇA EM CRECHES FINIT – Negócios – Inovação - Tecnologia Expominas 01 de Novembro de 2017
  • 2. SOBRE OS AUTORES • Ivan Paulovich Pinheiro Gomes Graduando em Ciência da Computação Centro Universitário de Belo Horizonte – UNI-BH ivan@100loop.com • Diva de Souza e Silva Rodrigues Doutora em Informática, PUC-Rio, 2006. Professora do Centro Universitário de Belo Horizonte – UNI-BH diva.rodrigues@prof.unibh.br
  • 3. COMO OS DADOS SÃO ARMAZENADOS ATUALMENTE? Código Funcionário Nome Salário Código Departamento 42 André Gomes R$5000,00 12 70 Vinícius Lima R$4500,00 29 77 Luciano Reis R$5200,00 17 Tabela de Funcionários em 17 de agosto
  • 4. COMO OS DADOS SÃO ARMAZENADOS ATUALMENTE? Código Funcionário Nome Salário Código Departamento 42 André Gomes R$5000,00 12 70 Vinícius Lima R$4500,00 29 77 Luciano Reis R$5200,00 17 Tabela de Funcionários em 17 de agosto Código Funcionário Nome Salário Código Departamento 42 André Gomes R$6000,00 12 70 Vinícius Lima R$4500,00 29 77 Luciano Reis R$5200,00 17 Tabela de Funcionários em 18 de agosto Por quê? Quem? Quando?
  • 5. COMO OS DADOS SÃO ARMAZENADOS ATUALMENTE? • Bancos de Dados Relacionais • Informações mais antigas são destruídas a cada UPDATE e DELETE. • Não armazena o usuário, a motivação e o horário da alteração. (A não ser que faça parte do modelo) • Existe concorrência entre escrita e leitura.
  • 6. ARMAZENAMENTO EM FLUXO DE DADOS C/C Saldo 2010-0 R$ 200,00 4030-1 R$ 300,00 Tabela de Saldos por C/C Extrato das Contas Correntes ProjeçãoPublicação 1 Depositado C/C: 4030-1 Data: 17/08/2017 Valor: R$ 500,00 2 Depositado C/C: 2010-0 Data: 20/08/2017 Valor: R$ 300,00 3 Sacado C/C: 2010-0 Data: 23/08/2017 Valor: R$ 100,00 4 Sacado C/C: 4030-1 Data: 25/08/2017 Valor: R$ 200,00 Sabemos o porquê, o quem, e o quando de cada alteração
  • 7. A METODOLOGIA 1. Estudar o negócio de uma Escola Infantil 2. Definir o Domínio 3. Modelar o Domínio utilizando Domain-Driven Design 4. Construir uma linguagem ubíqua entre o Negócio e o Desenvolvimento 5. Implementar a solução com as melhores práticas arquiteturais
  • 8. O DOMÍNIO DE UMA ESCOLA INFANTIL Professor Familiar Criança Receber Criança Escola Entregar Criança Abrir Expediente Fechar Expediente Deixar Criança Buscar Criança Definir Responsável Iniciar ano letivo Adicionar Criança
  • 9. DIAGRAMA DA SOLUÇÃO Stream Producer API Consumer APP Banco de Dados Processo de Escrita: Primeiro no Stream e depois no Banco de Dados Leitura diretamente do Banco de Dados
  • 11. CONSUMO E PROJEÇÃO DE EVENTOS Criança Adicionada Domain Event Criança Adicionada Domain Event Handler Código Criança Nome Data de Nascimento Código Família 992 Marina Gomes 17/junho/2010 19 Projeção dos Eventos de Domínio em um banco de dados SQL ou NoSQL
  • 12. OS DESAFIOS TÉCNICOS SUPERADOS • Arquitetura para Microserviços • Domain-Driven Design (DDD) • Aggregates • Event Sourcing • Command-Query-Responsibility-Segregation (CQRS)
  • 13. AS DIFICULDADES • O desenvolvimento com DDD exige um profundo conhecimento do Domínio e dos princípios de OO para a sua correta modelagem • Necessário manter dois sistemas de armazenamento (Stream e banco de dados) • Complexidade dos Princípios de Microserviços e da comunicação distribuída
  • 14. OS BENEFÍCIOS 1. O sistema nasce com Auditoria de todas as operações. 2. Alta performance de escrita em Stream. 3. Evita o Ponto único de falha ao armazenar dados distribuídos. 4. Permite implementar funcionalidades não previstas no começo do projeto. 5. É possível voltar no tempo e descobrir a origem de qualquer mudança. 6. Pronto para Big Data!
  • 15. APLICAÇÕES EM SEGURANÇA DE CRECHES 1. Nesta solução todo o histórico de quem entregou e retirou a criança é registrado. 2. A partir do histórico é possível identificar se a criança está sendo retirada fora de algum padrão seguro como • Fora do horário • Ou por uma pessoa desconhecida. 3. Resguarda a instituição caso ela seja questionada o por que de entregar a criança a determinada pessoa.
  • 16. ONDE AS TÉCNICAS PODEM SER APLICADAS? • Mercado Financeiro, Contabilidade • Bancos • Saúde • Redes Sociais • Aplicações Reativas a Eventos • Sistemas que possuem rastreamento do comportamento do usuário
  • 17. CÓDIGOS E RESULTADOS MFA Microserviço para Gerenciamento de Entrada e Saída de Crianças com implementação de Event Sourcing https://github.com/ivanpaulovich/mfa Jambo Microserviço para Gerenciamento de Conteúdo de blogs pessoais com implementação de Event Sourcing https://github.com/ivanpaulovich/jambo
  • 18. REFERÊNCIAS • VERNON, V. Implementing Domain-Driven Design 1st Edition. United States: Addison-Wesley Professional, 2013. 656 p. • HALL, G. M. Adaptive Code via C#: Agile coding with design patterns and SOLID principles (Developer Reference) 1st Edition. United States: Addison-Wesley, 2014. 416 p.