cqrs-implementation
Faz seu agente separar as tarefas de dar comandos e de fazer perguntas em sistemas complexos. Isso ajuda a criar sistemas mais rápidos e eficientes.
O que ela faz
Este guia ensina como separar as tarefas de escrita e leitura de dados em um sistema. Isso ajuda a tornar o sistema mais rápido e organizado, especialmente quando há muitas informações sendo acessadas ou modificadas.
Quando usar
- ✓Quando você precisa que a escrita e a leitura de dados funcionem de formas diferentes.
- ✓Para fazer a parte de leitura do sistema rodar mais rápido, sem afetar a escrita.
- ✓Ao construir sistemas que registram todas as mudanças como eventos.
Exemplo do que pedir para a IA
“Como posso usar o CQRS para otimizar a velocidade de relatórios complexos?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ele funciona dividindo as operações em duas partes: comandos (para mudar dados) e consultas (para ler dados). Cada parte pode ser otimizada separadamente, usando modelos de dados diferentes e focando em performance.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add wshobson/agents --skill cqrs-implementationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/backend-development/skills/cqrs-implementation/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Implementação de CQRS
Guia completo para implementar os padrões CQRS (Command Query Responsibility Segregation).
Quando Usar Esta Habilidade
- Separar preocupações de leitura e escrita
- Escalar leituras independentemente das escritas
- Construir sistemas com "event sourcing"
- Otimizar cenários de consulta complexos
- Necessidade de diferentes modelos de dados para leitura/escrita
- Requisitos de relatórios de alta performance
Conceitos Principais
1. Arquitetura CQRS
┌─────────────┐
│ Client │
└──────┬──────┘
│
┌────────────┴────────────┐
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Commands │ │ Queries │
│ API │ │ API │
└──────┬──────┘ └──────┬──────┘
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Command │ │ Query │
│ Handlers │ │ Handlers │
└──────┬──────┘ └──────┬──────┘
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Write │─────────►│ Read │
│ Model │ Events │ Model │
└─────────────┘ └─────────────┘
2. Componentes Chave
| Componente | Responsabilidade |
|---|---|
| Comando | Intenção de mudar o estado |
| Manipulador de Comando | Valida e executa comandos |
| Evento | Registro de mudança de estado |
| Consulta | Requisição de dados |
| Manipulador de Consulta | Recupera dados do modelo de leitura |
| Projetor | Atualiza o modelo de leitura a partir de eventos |
Modelos e Exemplos Detalhados
A biblioteca completa de modelos e exemplos detalhados está em references/details.md. Leia este arquivo quando precisar dos modelos concretos.
Melhores Práticas
O Que Fazer
- Separar modelos de comando e consulta - Necessidades diferentes
- Usar consistência eventual - Aceitar atraso na propagação
- Validar em manipuladores de comando - Antes da mudança de estado
- Desnormalizar modelos de leitura - Otimizar para consultas
- Versionar seus eventos - Para evolução de esquema
O Que Não Fazer
- Não consultar em comandos - Usar apenas para escritas
- Não acoplar esquemas de leitura/escrita - Evolução independente
- Não exagerar na engenharia - Comece simples
- Não ignorar SLAs de consistência - Definir atraso aceitável
Perguntas frequentes
O que é 'consistência eventual'?
Significa que os dados podem demorar um pouquinho para serem atualizados em todas as partes do sistema, mas eventualmente estarão corretos.
Por que separar os modelos de leitura e escrita?
Porque eles têm necessidades diferentes. O modelo de escrita precisa garantir a integridade dos dados, enquanto o de leitura precisa ser rápido para responder a perguntas.
Posso começar com uma implementação simples?
Sim, a recomendação é começar simples e adicionar complexidade apenas quando for realmente necessário.
Detalhes
Descrição original do autor
Implement Command Query Responsibility Segregation for scalable architectures. Use when separating read and write models, optimizing query performance, or building event-sourced systems.
repo: wshobson/agents
Popularidade
- Estrelas no GitHub
- 41 mil
- Posição no ranking
- #4804
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
screen-reader-testing
Faz seu agente testar sites usando leitores de tela para garantir que sejam acessíveis.
wshobson/agents
wcag-audit-patterns
Ajuda seu agente a auditar sites para acessibilidade e corrigir problemas de acordo com as diretrizes WCAG.
wshobson/agents
multi-reviewer-patterns
Faz seu agente coordenar revisões de código paralelas, deduplicando achados e consolidando relatórios.
wshobson/agents
parallel-debugging
Permite ao agente depurar problemas complexos com investigações paralelas e análise de causa raiz.
wshobson/agents
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC