DDD, CQRS, and Domain Events

Preview:

Citation preview

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

Desenvolvendo Aplicações Altamente Escaláveis com CQRS

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

Aplicações Altamente Escaláveis

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

CQRS – Command and Query Responsibility Segregation

Event Sourcing and Event Stores

EDA – Event Driven Architecture

Aplicações Altamente Escaláveis

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

“A single model cannot be suitable to perform reports, searches and transactional behaviors”.

Greg Young

Conceito CQRS

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

Conceito CQRS

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

Business Task

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

Reporting

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

Task/Reporting

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

Necessidade de mecanismos de sincronização:• Automático• Eventual• Controlada• Sob demanda

CQRS Implica em

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

1. Mudanças de estado são feitas atráves de mensagens

2. Application Services aceita commandos da UI e dispara Mensagens/Eventos

3. Data Source de Consulta e Relatórios são atualizados por eventos

4. Todas as consultas feitas pela UI são processadas diretamente pelo Sistema de consulta

Fundamentos

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

Fundamentos

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

Fundamentos

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

Escalabilidade

Performance

Conflitos de concorrência

Complexidade no desenvolvimento e manutenção

Soluções

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

Mostrando um exemplo de Escrita e Leitura simples.

Demo

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

Mostrando um exemplo completo

Demo

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

Event Sourcing & Event Stores

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

Event Sourcing & Event Store

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

EDA – Event Driven Architecture

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

When [something] has occurred, the system

should [something]…

EDA – Event Driven Architecture

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

EDA – Event Driven Architecture

São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul

ObrigadoGiovani Decusatigiovani@cwi.com.br

Recommended