Arquitetura selecionada
CQRS no Frontend
CQRS no frontend diferencia comandos que alteram estado de consultas que montam telas. A UI passa a ter modelos de leitura otimizados e comandos explícitos para ações do usuário.
Estrutura de pastas
Navegue pelos arquivos para ver como a arquitetura aparece no código.
export class OrderSummaryQuery {
execute(orderId: string) {
return this.http.get<OrderSummaryView>(`/orders/${orderId}/summary`);
}
}Prós
- Clareia ações que mudam estado versus telas de consulta.
- Permite modelos de leitura mais simples para a UI.
- Ajuda a lidar com fluxos assíncronos e consistência eventual.
Contras
- Pode duplicar modelos e aumentar manutenção.
- Exige cuidado para não transformar tudo em comando/query sem necessidade.
- Combina melhor quando backend ou domínio já seguem separação parecida.
Quando usar
- Interfaces com muitas ações de negócio.
- Dashboards com leituras agregadas e comandos críticos.
- Produtos que precisam rastrear intenções do usuário.
Exemplo real
Uma tela de pedidos com consultas otimizadas para visualização e comandos para cancelar, pagar ou reenviar.
Cenário prático
A página carrega `OrderSummaryQuery` para exibir dados agregados e usa `CancelOrderCommand` quando o usuário confirma cancelamento.
Como implementar
- Crie queries para modelos de leitura otimizados para telas.
- Crie commands para ações que alteram estado ou disparam fluxos.
- Modele feedback de comando: loading, sucesso, falha e atualização da leitura.
Cuidado comum
Separar leitura e escrita em telas simples pode duplicar código sem resolver um problema real.