event-store-design
Ajuda seu agente a projetar e implementar bancos de dados para sistemas que registram todas as mudanças como eventos. É essencial para construir a infraestrutura de rastreamento de dados.
O que ela faz
Esta ferramenta ajuda a projetar e configurar "event stores", que são bancos de dados especiais para guardar eventos em sistemas de software. É útil para quem está construindo a infraestrutura de um sistema que registra todas as mudanças como uma sequência de eventos.
Quando usar
- ✓Ao construir a base de um sistema que registra cada ação.
- ✓Ao escolher qual tecnologia usar para guardar esses eventos.
- ✓Ao configurar como os eventos serão armazenados e recuperados.
Exemplo do que pedir para a IA
“Como posso configurar um event store usando PostgreSQL para registrar eventos de usuários?”
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
A ferramenta analisa seus objetivos e restrições, aplica as melhores práticas de design de event stores e fornece passos práticos. Ela pode mostrar exemplos de como configurar o banco de dados ou escrever o código para gerenciar os eventos.
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 sickn33/agentic-awesome-skills --skill event-store-designOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/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.
Não use esta habilidade quando
- A tarefa não estiver relacionada ao design de event store
- Você precisar de um domínio ou ferramenta diferente fora deste escopo
Instruções
- Clarifique objetivos, restrições e entradas necessárias.
- Aplique as melhores práticas relevantes e valide os resultados.
- Forneça passos acionáveis e verificação.
- Se exemplos detalhados forem necessários, abra
resources/implementation-playbook.md.
Use esta habilidade quando
- Projetando infraestrutura de event sourcing
- Escolhendo entre tecnologias de event store
- Implementando event stores customizados
- Otimizando o armazenamento e recuperação de eventos
- Configurando esquemas de event store
- Planejando a escalabilidade 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
Modelo 1: Esquema de Event Store PostgreSQL
-- Events table
CREATE TABLE events (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
stream_id VARCHAR(255) NOT NULL,
stream_type VARCHAR(255) NOT NULL,
event_type VARCHAR(255) NOT NULL,
event_data JSONB NOT NULL,
metadata JSONB DEFAULT '{}',
version BIGINT NOT NULL,
global_position BIGSERIAL,
created_at TIMESTAMPTZ DEFAULT NOW(),
CONSTRAINT unique_stream_version UNIQUE (stream_id, version)
);
-- Index for stream queries
CREATE INDEX idx_events_stream_id ON events(stream_id, version);
-- Index for global subscription
CREATE INDEX idx_events_global_position ON events(global_position);
-- Index for event type queries
CREATE INDEX idx_events_event_type ON events(event_type);
-- Index for time-based queries
CREATE INDEX idx_events_created_at ON events(created_at);
-- Snapshots table
CREATE TABLE snapshots (
stream_id VARCHAR(255) PRIMARY KEY,
stream_type VARCHAR(255) NOT NULL,
snapshot_data JSONB NOT NULL,
version BIGINT NOT NULL,
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- Subscriptions checkpoint table
CREATE TABLE subscription_checkpoints (
subscription_id VARCHAR(255) PRIMARY KEY,
last_position BIGINT NOT NULL DEFAULT 0,
updated_at TIMESTAMPTZ DEFAULT NOW()
);
Modelo 2: Implementação de Event Store em Python
from dataclasses import dataclass, field
from datetime import datetime
from typing import Any, Optional, List
from uuid import UUID, uuid4
import json
import asyncpg
@dataclass
class Event:
stream_id: str
event_type: str
data: dict
metadata: dict = field(default_factory=dict)
event_id: UUID = field(default_factory=uuid4)
version: Optional[int] = None
…
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 o estado atual. Isso permite reconstruir o estado a qualquer momento.
Quais tecnologias são recomendadas?
Depende do seu caso. Para sistemas focados em event sourcing, EventStoreDB é uma opção. Para quem já usa PostgreSQL, Marten (.NET) ou Kafka para streaming de alta vazão também são considerados.
O que significa 'append-only'?
Significa que os eventos, uma vez registrados, não podem ser alterados ou excluídos. Apenas novos eventos podem ser adicionados à sequência.
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.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2944
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
pytorch-patterns
Ajuda seu agente a usar o PyTorch para criar modelos de aprendizado de máquina. Ele aplica as melhores práticas para treinar modelos de forma eficiente e garantir que os resultados sejam consistentes.
affaan-m/ECC
evm-token-decimals
Ajuda seu agente a evitar erros com números decimais em diferentes redes blockchain. Garante que os valores de tokens sejam precisos em transações e cálculos.
affaan-m/ECC
knowledge-agent
Cria e consulta bases de conhecimento com inteligência artificial. Permite fazer perguntas sobre trabalhos passados ou compilar conhecimento sobre um tema.
thedotmack/claude-mem