Навыки projection-patterns
📦

projection-patterns

Низкий риск 🌐 Доступ к сети⚙️ Внешние команды

Реализация паттернов проекций CQRS

Системы с событийным источником нуждаются в эффективных моделях чтения для высокопроизводительных запросов. Этот навык предоставляет готовые к использованию шаблоны и паттерны для создания проекций, моделей чтения и материализованных представлений из потоков событий с использованием Python.

Поддерживает: Claude Codex Code(CC)
📊 69 Адекватно
1

Скачать ZIP навыка

2

Загрузить в Claude

Перейдите в Settings → Capabilities → Skills → Upload skill

3

Включите и начните использовать

Протестировать

Использование «projection-patterns». Создать базовую проекцию сводки заказов

Ожидаемый результат:

  • Обработчик событий для OrderCreated: Вставить новую запись сводки заказа с данными клиента
  • Обработчик событий для OrderItemAdded: Обновить total_amount и увеличить item_count
  • Обработчик событий для OrderShipped: Установить статус shipped и записать timestamp shipped_at
  • Отслеживание контрольной точки: Сохранять global_position после каждого обработанного события
  • Идемпотентный дизайн: Безопасно воспроизводить события при перезапуске системы

Использование «projection-patterns». Создать проекцию отслеживания активности клиентов

Ожидаемый результат:

  • Обработчик CustomerCreated: Вставить запись клиента и инициализировать сводку активности
  • Обработчик OrderCompleted: Обновить total_orders и total_spent в таблице сводки
  • Обработчик OrderCompleted: Вставить в таблицу истории заказов для аудиторского следа
  • Обработчик ReviewSubmitted: Увеличить количество отзывов и записать дату последнего отзыва
  • Обработчик CustomerTierChanged: Обновить tier и timestamp изменения уровня

Использование «projection-patterns». Реализовать проекцию для панели мониторинга продаж в реальном времени

Ожидаемый результат:

  • Обработчик OrderCompleted: Upsert записи о продажах за день с новыми итогами заказов
  • Обработчик OrderRefunded: Уменьшить доход и увеличить итоги возвратов
  • Извлечение даты: Разобрать дату завершения для группировки продаж по дням
  • Атомарные обновления: Использовать ON CONFLICT базы данных для защиты от состояний гонки
  • Расчет метрик: Отслеживать общее количество заказов, доход, товары и возвраты за день

Аудит безопасности

Низкий риск
v4 • 1/17/2026

This skill is documentation-only containing Python code templates for CQRS projection patterns. Static scanner flagged 42 patterns, but all are false positives triggered by documentation formatting and terminology. No executable code, network calls, or system modifications exist. The skill only provides architectural guidance via markdown templates.

2
Просканировано файлов
664
Проанализировано строк
2
находки
4
Всего аудитов

Оценка качества

38
Архитектура
100
Сопровождаемость
87
Контент
29
Сообщество
90
Безопасность
91
Соответствие спецификации

Что вы можете построить

Создание моделей чтения

Преобразование потоков событий в оптимизированные модели чтения для вашей архитектуры CQRS.

Создание аналитических представлений

Создание агрегированных представлений в реальном времени для панелей мониторинга и систем отчетности.

Проектирование событийных систем

Планирование и реализация стратегий проекций для микросервисов с событийным источником.

Попробуйте эти промпты

Базовая проекция
Создайте базовый класс проекции, который обрабатывает события OrderCreated и OrderCompleted из потока событий и обновляет модель чтения PostgreSQL.
Обновление нескольких таблиц
Напишите проекцию, которая обновляет как таблицу сводки по клиентам, так и таблицу истории заказов при возникновении события OrderCompleted, используя одну транзакцию базы данных.
Синхронизация поискового индекса
Создайте проекцию Elasticsearch, которая индексирует события продуктов для полнотекстового поиска, обрабатывая операции создания, обновления и удаления.
Ежедневные метрики
Напишите проекцию, которая агрегирует данные о продажах по дням, обрабатывая как завершенные заказы, так и возвраты с логикой upsert.

Лучшие практики

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

Избегать

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

Часто задаваемые вопросы

С какими базами данных работают эти проекции?
Шаблоны используют asyncpg для PostgreSQL, но паттерны применимы к любым асинхронным драйверам базы данных, таким как SQLAlchemy или базы данных с асинхронной поддержкой.
Как проекции обрабатывают большие объемы событий?
Реализуйте пакетную обработку с настраиваемым batch_size и контрольными точками для управления памяти и возможности перезапуска.
Могу ли я использовать эти паттерны с Kafka?
Да, паттерн проектора работает с любым источником событий. Замените вызов event_store.read_all() на логику вашего Kafka-консюмера.
Безопасны ли мои данные с этими проекциями?
Это архитектурные шаблоны. Фактическая безопасность данных зависит от разрешений вашей базы данных, безопасности подключения и средств контроля доступа.
Почему моя проекция отстает от потока событий?
Проверьте размер пакета событий, производительность запросов к базе данных и убедитесь в правильном индексировании таблиц моделей чтения для паттернов данных событий.
Чем это отличается от конвейеров ETL?
Проекции обрабатывают события по порядку по мере их возникновения, поддерживая состояние. ETL обычно запускает пакетные задания на исторических данных без обновлений в реальном времени.

Сведения для разработчиков

Автор

wshobson

Лицензия

MIT

Ссылка

main

Структура файлов

📄 SKILL.md