event-store-design
Ajuda seu agente a projetar e criar locais para guardar eventos em sistemas que registram tudo o que acontece. É importante para sistemas que precisam de um histórico completo.
O que ela faz
Esta ferramenta ajuda a planejar e criar um 'banco de dados de eventos' para sistemas que registram tudo o que acontece. É útil para guardar informações de forma segura e organizada.
Quando usar
- ✓Ao criar a base para um sistema que registra eventos.
- ✓Ao escolher qual tecnologia usar para guardar esses eventos.
- ✓Ao organizar como os eventos serão armazenados e recuperados.
Exemplo do que pedir para a IA
“Como posso projetar um banco de dados de eventos para registrar as ações dos usuários em um aplicativo?”
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
Ela guia você na criação da estrutura do banco de dados de eventos, definindo como os eventos serão adicionados (sempre no final), organizados em sequências e como garantir que não haja duplicatas ou perdas.
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 event-store-designOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/backend-development/skills/event-store-design/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.
Design de Event Store
Guia completo para projetar event stores para aplicações com event sourcing.
Quando Usar Esta Habilidade
- Projetando infraestrutura de event sourcing
- Escolhendo entre tecnologias de event store
- Implementando event stores customizados
- Otimizando armazenamento e recuperação de eventos
- Configurando esquemas de event store
- Planejando o escalonamento do event store
Conceitos Principais
1. Arquitetura do Event Store
┌─────────────────────────────────────────────────────┐
│ Event Store │
├─────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Stream 1 │ │ Stream 2 │ │ Stream 3 │ │
│ │ (Aggregate) │ │ (Aggregate) │ │ (Aggregate) │ │
│ ├─────────────┤ ├─────────────┤ ├─────────────┤ │
│ │ Event 1 │ │ Event 1 │ │ Event 1 │ │
│ │ Event 2 │ │ Event 2 │ │ Event 2 │ │
│ │ Event 3 │ │ ... │ │ Event 3 │ │
│ │ ... │ │ │ │ Event 4 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────┤
│ Global Position: 1 → 2 → 3 → 4 → 5 → 6 → ... │
└─────────────────────────────────────────────────────┘
2. Requisitos do Event Store
| Requisito | Descrição |
|---|---|
| Apenas Adição | Eventos são imutáveis, apenas adições |
| Ordenado | Ordem por stream e global |
| Versionado | Controle de concorrência otimista |
| Assinaturas | Notificações de eventos em tempo real |
| Idempotente | Lida com escritas duplicadas com segurança |
Comparação de Tecnologias
| Tecnologia | Ideal Para | Limitações |
|---|---|---|
| EventStoreDB | Event sourcing puro | Propósito único |
| PostgreSQL | Stack Postgres existente | Implementação manual |
| Kafka | Streaming de alta vazão | Não ideal para consultas por stream |
| DynamoDB | Serverless, nativo da AWS | Limitações de consulta |
| Marten | Ecossistemas .NET | Específico para .NET |
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
Faça
- Use IDs de stream que incluam o tipo de agregado -
Order-{uuid} - Inclua IDs de correlação/causalidade - Para rastreamento
- Version eventos desde o primeiro dia - Planeje a evolução do esquema
- Implemente idempotência - Use IDs de evento para deduplicação
- Indexe apropriadamente - Para seus padrões de consulta
Não Faça
- Não atualize ou exclua eventos - São fatos imutáveis
- Não armazene payloads grandes - Mantenha eventos pequenos
- Não pule a concorrência otimista - Evita corrupção de dados
- Não ignore backpressure - Lide com consumidores lentos
Perguntas frequentes
O que é 'event sourcing'?
É uma forma de construir sistemas onde todas as mudanças de estado são salvas como uma sequência de eventos. Em vez de apenas guardar o estado atual, você guarda o histórico de como ele chegou lá.
Por que os eventos não devem ser alterados ou deletados?
Eventos são fatos passados. Alterá-los seria como reescrever a história, o que pode causar inconsistências. É melhor adicionar novos eventos para corrigir ou anular ações anteriores.
O que são 'correlation IDs' e 'causation IDs'?
São identificadores que ajudam a rastrear a origem e o fluxo de um evento através de diferentes partes do sistema, facilitando a depuração e o entendimento do que aconteceu.
Detalhes
Descrição original do autor
Design and implement event stores for event-sourced systems. Use when building event sourcing infrastructure, choosing event store technologies, or implementing event persistence patterns.
repo: wshobson/agents
Popularidade
- Estrelas no GitHub
- 41 mil
- Posição no ranking
- #4805
- 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