event-store-design — скилл для Claude Code: проектирование хранилищ
Скилл помогает спроектировать хранилище событий для event-sourced системы и выбрать подходящую технологию. Пригодится, когда вы строите инфраструктуру хранения событий.
/plugin marketplace add wshobson/agents
/plugin install backend-development@claude-code-workflowsЧто делает event-store-design
Скилл описывает устройство event store: события добавляются в потоки агрегатов, сохраняют порядок внутри потока и глобальную позицию. Он разбирает неизменяемость событий, контроль конкурентной записи, подписки и защиту от повторных записей. Это основа для обсуждения схемы и поведения хранилища.
В руководстве сравниваются EventStoreDB, PostgreSQL, Kafka, DynamoDB и Marten с учётом сценариев применения и ограничений. Также есть практики для идентификаторов потоков, версионирования событий, дедупликации и индексов. Подробные шаблоны и примеры вынесены в references/details.md.
Ставьте скилл, если проектируете event sourcing или выбираете хранилище. Он не заменяет реализацию: для PostgreSQL она остаётся ручной, а Kafka не подходит для запросов по отдельным потокам.
Какие задачи решает
- выбрать технологию для event store
- спроектировать потоки событий по агрегатам
- задать порядок и контроль конкурентной записи
- предусмотреть дедупликацию повторных событий
- подготовить схему к изменению форматов событий
Примеры запросов агенту
- Сравни EventStoreDB и PostgreSQL для нашего event store с учётом ограничений.
- Предложи схему потоков событий для агрегатов заказов и правила контроля конкурентной записи.
- Покажи, как учесть версионирование и дедупликацию событий; используй примеры из `references/details.md`.
Как установить event-store-design
1Через маркетплейс плагинов
/plugin marketplace add wshobson/agents/plugin install backend-development@claude-code-workflowsКоманда ставит плагин backend-development целиком, со всеми его скиллами
2Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill event-store-design -a claude-code3Вручную: положить файлы
~/.claude/skills/event-store-design/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/event-store-design/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill event-store-design -a codex2Вручную: положить файлы
.agents/skills/event-store-design/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill event-store-design -a cursor2Вручную: положить файлы
.cursor/skills/event-store-design/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install wshobson/agents event-store-design2Вручную: положить файлы
.github/skills/event-store-design/SKILL.mdКомандой платформы
gemini skills install https://github.com/wshobson/agents --path plugins/backend-development/skills/event-store-designВручную: положить файлы
.devin/skills/event-store-design/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора213
Весь набор →Похожие
Вопросы о event-store-design
Как установить event-store-design в Claude Code?
Выполните npx skills add wshobson/agents --skill event-store-design -a claude-code. Для установки через marketplace используйте /plugin marketplace add wshobson/agents, затем /plugin install backend-development@claude-code-workflows.
Что делает event-store-design?
Скилл помогает проектировать хранилища для event-sourced систем: описывает требования к записи событий и сравнивает технологии, включая EventStoreDB, PostgreSQL и Kafka.
Какие технологии сравнивает скилл?
В руководстве рассмотрены EventStoreDB, PostgreSQL, Kafka, DynamoDB и Marten. Для каждой указаны подходящий сценарий и ограничение.
Исходный текст
SKILL.md · MIT
---
name: event-store-design
description: Design and implement event stores for event-sourced systems. Use when building event sourcing infrastructure, choosing event store technologies, or implementing event persistence patterns.
---
# Event Store Design
Comprehensive guide to designing event stores for event-sourced applications.
## When to Use This Skill
- Designing event sourcing infrastructure
- Choosing between event store technologies
- Implementing custom event stores
- Optimizing event storage and retrieval
- Setting up event store schemas
- Planning for event store scaling
## Core Concepts
### 1. Event Store Architecture
```
┌─────────────────────────────────────────────────────┐
│ 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. Event Store Requirements
| Requirement | Description |
| ----------------- | ---------------------------------- |
| **Append-only** | Events are immutable, only appends |
| **Ordered** | Per-stream and global ordering |
| **Versioned** | Optimistic concurrency control |
| **Subscriptions** | Real-time event notifications |
| **Idempotent** | Handle duplicate writes safely |
## Technology Comparison
| Technology | Best For | Limitations |
| ---------------- | ------------------------- | -------------------------------- |
| **EventStoreDB** | Pure event sourcing | Single-purpose |
| **PostgreSQL** | Existing Postgres stack | Manual implementation |
| **Kafka** | High-throughput streaming | Not ideal for per-stream queries |
| **DynamoDB** | Serverless, AWS-native | Query limitations |
| **Marten** | .NET ecosystems | .NET specific |
## Templates and detailed worked examples
Full template library and detailed worked examples live in `references/details.md`. Read that file when you need the concrete templates.
## Best Practices
### Do's
- **Use stream IDs that include aggregate type** - `Order-{uuid}`
- **Include correlation/causation IDs** - For tracing
- **Version events from day one** - Plan for schema evolution
- **Implement idempotency** - Use event IDs for deduplication
- **Index appropriately** - For your query patterns
### Don'ts
- **Don't update or delete events** - They're immutable facts
- **Don't store large payloads** - Keep events small
- **Don't skip optimistic concurrency** - Prevents data corruption
- **Don't ignore backpressure** - Handle slow consumers
© Seth Hobson · MIT · wshobson/agents