Pular para o conteúdo
Skillpedia
APIs e servidores (backend)41 mil · #4804

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

https://github.com/wshobson/agents/blob/main/plugins/backend-development/skills/cqrs-implementation/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/wshobson/agents/blob/main/plugins/backend-development/skills/cqrs-implementation/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-implementation

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/backend-development/skills/cqrs-implementation/SKILL.md -o SKILL.md
Conteú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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas