21
São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul Desenvolvendo Aplicações Altamente Escaláveis com CQRS

DDD, CQRS, and Domain Events

Embed Size (px)

Citation preview

Page 1: DDD, CQRS, and Domain Events

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

Desenvolvendo Aplicações Altamente Escaláveis com CQRS

Page 2: DDD, CQRS, and Domain Events

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

Aplicações Altamente Escaláveis

Page 3: DDD, CQRS, and Domain Events

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

Page 4: DDD, CQRS, and Domain Events

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

Page 5: DDD, CQRS, and Domain Events

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

Conceito CQRS

Page 6: DDD, CQRS, and Domain Events

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

Business Task

Page 7: DDD, CQRS, and Domain Events

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

Reporting

Page 8: DDD, CQRS, and Domain Events

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

Task/Reporting

Page 9: DDD, CQRS, and Domain Events

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

Page 10: DDD, CQRS, and Domain Events

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

Page 11: DDD, CQRS, and Domain Events

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

Fundamentos

Page 12: DDD, CQRS, and Domain Events

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

Fundamentos

Page 13: DDD, CQRS, and Domain Events

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

Page 14: DDD, CQRS, and Domain Events

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

Mostrando um exemplo de Escrita e Leitura simples.

Demo

Page 15: DDD, CQRS, and Domain Events

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

Mostrando um exemplo completo

Demo

Page 16: DDD, CQRS, and Domain Events

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

Event Sourcing & Event Stores

Page 17: DDD, CQRS, and Domain Events

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

Event Sourcing & Event Store

Page 18: DDD, CQRS, and Domain Events

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

EDA – Event Driven Architecture

Page 19: DDD, CQRS, and Domain Events

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

Page 20: DDD, CQRS, and Domain Events

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

EDA – Event Driven Architecture

Page 21: DDD, CQRS, and Domain Events

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

ObrigadoGiovani [email protected]