К основному содержанию
скилл CX Codex

event-sourcing — скилл для Claude Code: события, CQRS и аудит

Скилл для ИИ-агента, который помогает проектировать event sourcing и CQRS: хранилище событий, агрегаты, проекции и снапшоты. Пригодится, когда нужна история изменений и запросы к состоянию на любой момент.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add aj-geddes/useful-ai-prompts --skill event-sourcing -a claude-code
Открыть на GitHub

Что делает event-sourcing

Скилл объясняет подход, при котором состояние хранится не как одна текущая запись, а как последовательность событий. Из этого следуют аудит, временные запросы и воспроизведение событий заново. Внутри есть краткий пример на TypeScript с интерфейсами DomainEvent и Aggregate и классом EventStore с методом appendEvents, а полные реализации вынесены в каталог references/.

В справочниках четыре темы: хранилище событий на TypeScript, проекции как модели чтения, хранилище на PostgreSQL и снапшоты для производительности. Отдельный блок лучших практик перечисляет, что делать и чего избегать: хранить события неизменно, версионировать их, использовать оптимистичную блокировку, не мутировать прошлые события и не ходить в хранилище событий за чтением.

Скилл даёт подход и примеры кода, а не готовую библиотеку. Если в проекте уже есть ORM с изменяемыми сущностями, схему придётся перестраивать: события пишутся только на добавление, а чтение идёт через проекции. Проверьте, что ваша СУБД и способ деплоя выдержат такой поток записи.

Какие задачи решает

  • построить аудит изменений по каждому агрегату
  • получить состояние объекта на произвольный момент времени
  • разделить запись событий и чтение через проекции
  • добавить снапшоты, чтобы не перечитывать всю историю
  • пережить смену схемы события без потери старых записей

Примеры запросов агенту

  • Спроектируй event store для заказов: агрегат, события, оптимистичная блокировка по версии
  • Покажи, как построить проекцию для списка заказов на PostgreSQL
  • Добавь снапшоты для агрегата с длинной историей событий

Как установить event-sourcing

1Через Skills CLI (Vercel)

npx skills add aj-geddes/useful-ai-prompts --skill event-sourcing -a claude-code

2Вручную: положить файлы

~/.claude/skills/event-sourcing/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/event-sourcing/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора118

penetration-testing Скилл помогает модели планировать и проводить этичное тестирование безопасности, симулируя атаки на приложения и сетевую инфраструктуру. CX Codex +1 1 100установок responsive-web-design Скилл для ИИ-агента, который помогает писать адаптивные интерфейсы на Flexbox, CSS Grid и медиазапросах. Пригодится, когда вёрстка должна работать на телефоне и десктопе. CX Codex +1 1 100установок css-architecture Скилл для ИИ-агента, который помогает разложить CSS по методологиям BEM, SMACSS и CSS-in-JS. Пригодится, когда стили в проекте растут быстрее, чем вы успеваете их переименовывать. CX Codex +1 959установок api-contract-testing Скилл настраивает проверку контрактов API между сервисами без запуска полных интеграционных тестов. Помогает избежать несовместимых правок в CI. CX Codex +1 913установок root-cause-analysis Скилл ведёт разбор инцидента по шагам и доводит до причины, которую можно устранить, а не залатать симптом. CX Codex +1 884установок mobile-first-design Скилл задаёт порядок работы над интерфейсом: сначала мобильный экран, потом планшет и десктоп. Пригодится, когда вёрстка разъезжается на телефонах. CX Codex +1 857установок mobile-app-testing Задаёт правила тестирования приложений для iOS и Android. Помогает писать юнит-, UI- и интеграционные тесты с Jest, Detox, Espresso и XCTest. CX Codex +1 823установок technical-specification Помогает агенту писать техспеки, PRD, ADR и RFC: требования, архитектура, критерии приёмки. Пригодится, когда фичу надо описать до кода. CX Codex +1 804установок

Похожие

event-sourcing-architect Seth Hobson Субагент для проектирования event-sourced систем: агрегаты, проекции, саги и работа с eventual consistency. Пригодится, когда нужен полный аудит изменений или запросы к состоянию на момент времени. CX Codex ★ 41 729звёзд репо cqrs-implementation Seth Hobson Скилл помогает разделить обработку команд и запросов, а также спроектировать отдельные модели для записи и чтения. Пригодится для CQRS и систем с событийной моделью. CX Codex 11 000установок prisma-patterns affaan-m Набор правил и архитектурных шаблонов для работы с Prisma ORM в TypeScript. Помогает писать безопасные схемы, запросы и транзакции без утечек соединений. CX Codex +1 4 500установок netlify-database netlify Подключает бессерверный Postgres к приложениям на Netlify. Помогает писать миграции, связывать Drizzle ORM и отправлять запросы из функций без ручной настройки базы. CX Codex +1 2 900установок drizzle-migrations bobmatnyc Скилл задаёт порядок работы с базой в TypeScript: сначала SQL-миграция, потом схема. Пригодится, когда схема меняется в нескольких окружениях. CX Codex +1 1 300установок drizzle-orm Mindrally Скилл задаёт агенту правила разработки на Drizzle ORM: схема как код, типы из таблиц, запросы и миграции. CX Codex +1 1 000установок

Рядом в теме «Бэкенд и API»

Всё по теме «Бэкенд и API» →

Вопросы о event-sourcing

Как установить event-sourcing в Claude?

Выполните npx skills add aj-geddes/useful-ai-prompts --skill event-sourcing -a claude-code. После этого файл скилла лежит в ~/.claude/skills/event-sourcing/SKILL.md.

Что делает event-sourcing?

Описывает event sourcing и CQRS: как хранить изменения в виде событий, собирать агрегаты и строить проекции для чтения. Внутри есть пример на TypeScript и ссылки на подробные реализации.

Нужна ли конкретная база данных?

Нет, подход не привязан к одной СУБД. В справочниках разобран вариант хранилища событий на PostgreSQL, остальные примеры даны на TypeScript.

Исходный текст

SKILL.md · MIT
---
name: event-sourcing
description: >
  Implement event sourcing and CQRS patterns using event stores, aggregates, and
  projections. Use when building audit trails, temporal queries, or systems
  requiring full history.
---

# Event Sourcing

## Table of Contents

- [Overview](#overview)
- [When to Use](#when-to-use)
- [Quick Start](#quick-start)
- [Reference Guides](#reference-guides)
- [Best Practices](#best-practices)

## Overview

Store state changes as a sequence of events rather than the current state, enabling temporal queries, audit trails, and event replay.

## When to Use

- Audit trail requirements
- Temporal queries (state at any point in time)
- Event-driven microservices
- CQRS implementations
- Financial systems
- Complex domain models
- Debugging and analysis
- Compliance and regulation

## Quick Start

Minimal working example:

```typescript
interface DomainEvent {
  id: string;
  aggregateId: string;
  aggregateType: string;
  eventType: string;
  data: any;
  metadata: {
    userId?: string;
    timestamp: number;
    version: number;
  };
}

interface Aggregate {
  id: string;
  version: number;
}

class EventStore {
  private events: DomainEvent[] = [];

  async appendEvents(
    aggregateId: string,
    expectedVersion: number,
    events: Omit<DomainEvent, "id" | "metadata">[],
// ... (see reference guides for full implementation)
```

## Reference Guides

Detailed implementations in the `references/` directory:

| Guide | Contents |
|---|---|
| [Event Store (TypeScript)](references/event-store-typescript.md) | Event Store (TypeScript) |
| [Projections (Read Models)](references/projections-read-models.md) | Projections (Read Models) |
| [Event Store with PostgreSQL](references/event-store-with-postgresql.md) | Event Store with PostgreSQL |
| [Snapshots for Performance](references/snapshots-for-performance.md) | Snapshots for Performance |

## Best Practices

### ✅ DO

- Store events immutably
- Version your events
- Use optimistic concurrency
- Create snapshots for performance
- Use projections for queries
- Keep events small and focused
- Include metadata (timestamp, user, etc.)
- Handle event versioning/migration

### ❌ DON'T

- Mutate past events
- Store current state only
- Skip concurrency checks
- Query event store for reads
- Make events too large
- Forget about event schema evolution

© aj-geddes · MIT · aj-geddes/useful-ai-prompts

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой