Trevosidade em Desenvolvimento
07 de Maio de 2021
Como? Quando? Onde? E por que?
Muitos Usuários x mesmos dados
- Alugar um carro
- Agendar um atendimento
- Adicionar um mesmo produto ao carrinho
Command: Operações de persistência (insert, update, delete) aos dados, no banco verdadeiro.
Query: Operação de consulta aos dados, , em um banco desnormalizado.
Sendo o Query responsável apenas por mostrar o que o banco de dados tem. E o Command responsável por mexer diretamente nos dados.
Mas, o problema de concorrência ainda continua...
Forró dos véi
Fila de eventos
Comandos assíncronos e processados em fila, poupa o tempo de quem espera.
A regra de negócio só existe na persistência.
As consultas não consomem o mesmo banco de dados da persistencia, então é outra fila, mais rápida.
Não é uma arquitetura, mas sim um padrão arquitetural, então nem toda a aplicação precisa estar usando CQRS.
Não é fácil de implementar, melhor desistir de ser programador.