Token导航 LogoToken导航TokenDH.com
研究检索只读github未标认证来源可访问许可证需确认审计通过

eventmodeling-optimizing-stream-design事件建模优化流设计

Agent Skill

用于辅助界面设计、视觉规范、排版、配色、布局和交互体验优化。它适合让 Agent 根据产品场景整理页面结构、生成 UI 方案、检查视觉一致性或改进组件层级。使用时需要结合现有品牌、设计系统和用户任务,不应只堆装饰元素;涉及真实页面改动时,应通过截图或浏览器预览检查文本溢出、对齐和响应式表现。

总安装

499

周安装

20

GitHub Stars

公开资料未说明

下载量

162
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:eventmodeling-optimizing-stream-design(事件建模优化流设计)
来源仓库:https://github.com/trogonstack/agentskills
仓库路径:skills/eventmodeling-optimizing-stream-design
安装命令:
npx skills add https://github.com/trogonstack/agentskills --skill eventmodeling-optimizing-stream-design
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/trogonstack/agentskills --skill eventmodeling-optimizing-stream-design

简介

eventmodeling-optimizing-stream-design 优化事件流长度与快照策略选择。

  • 基于预估事件频率与生命周期决定是否需要定期截断。
  • 多数快照提议源于边界不清,应先修正模型再考虑性能。
  • 适用于长期运行系统的事件存储成本与查询效率权衡。
  • 需提供增长预测依据,避免盲目压缩导致追溯困难。

SKILL.md

Optimizing Stream Design

Interview Phase (Optional)

When to Interview: Skip if the user has specified: expected event frequency, stream lifetime, and growth patterns. Interview when stream length concerns exist but growth estimates are unclear.

Interview Strategy: Establish growth expectations and performance requirements before recommending snapshotting. Most snapshotting proposals stem from poor stream boundary design, not genuine volume — surface the estimates first to distinguish real performance concerns from design problems.

Critical Questions

  1. Growth Estimates (Impact: Determines if snapshotting is needed or if stream design should change)

- Question: "Estimate events: (A) Per entity per day, (B) Lifetime total, (C) Growth over years. Example: 5-10 events/order, 1-10 million orders/year?" - Why it matters: Growth estimates reveal if streams will genuinely be too long or if design is wrong - Follow-up triggers: If estimates exceed 300 events per stream lifetime → ask "Is the stream identity correct? Could this stream be split by a narrower business entity?"

  1. Performance SLAs (Impact: Determines acceptable latency and snapshotting decisions)

- Question: "Performance requirements? (A) <100ms read latency, (B) <1s acceptable, (C) Eventual consistency OK?" - Why it matters: Strict SLAs might need snapshotting; loose SLAs often don't - Follow-up triggers: If (A) → ask "Which commands specifically need sub-100ms replay? Are those commands reading from a read model or replaying the stream directly?"

Interview Flow

Conditional Entry:

If user has provided:
  - Event frequency estimate (per entity per day or per transaction)
  - AND stream lifetime estimate (months or years)
  - AND read latency SLA (or confirmation that eventual consistency is acceptable)

Then: Skip interview, proceed directly to stream analysis

Else: Conduct interview

Phase 1: Growth Estimation (Question 1)

  • Establish per-entity event volume
  • Project lifetime stream length using the estimation formula
  • Determine whether redesign or snapshotting analysis is warranted

Phase 2: SLA Requirements (Question 2)

  • Identify read latency requirements per command
  • Determine whether read models or direct stream replay satisfies the SLA
  • Establish whether snapshotting is justified by SLA alone

Capturing Interview Findings

Append findings to the project's event modeling file:

File: .trogonai/interviews/[project-name]/EVENTMODELING.md

Use Write tool to add/update this section:

## Optimizing Stream Design (eventmodeling-optimizing-stream-design)

### Growth Estimates
[From Q1: Events per entity per day, lifetime total, annual growth]

### Performance SLAs
[From Q2: Latency requirements per command or view]

### Optimization Decisions
- Streams requiring redesign: [list or "None"]
- Streams where snapshotting is justified: [list or "None"]
- Streams within acceptable bounds: [list]

Update Interview Trail:

| Optimization | eventmodeling-optimizing-stream-design | Done | Stream growth estimates, SLA review, snapshotting decisions |

Stream Design Optimization

Purpose: Optimize event stream design by validating stream boundaries, estimating growth, and making snapshotting decisions based on design quality—not just size.

Applies To: Any domain - e-commerce, banking, SaaS, marketplace, healthcare, etc.

When to Use:

  • After defining event streams in domain analysis
  • When concerned about stream length or performance
  • Before implementing to validate stream design
  • During performance planning to determine snapshotting strategy
  • When redesigning streams for scalability

What It Does:

  1. Analyzes event stream design for proper event organization
  2. Estimates stream growth over time
  3. Identifies when snapshotting is genuinely needed vs. design issue
  4. Recommends optimal stream identity boundaries
  5. Balances performance optimization against complexity
  6. Provides snapshotting strategy without over-engineering

Core Principle: Design First, Snapshot Second

Golden Rule:

If you find yourself needing to snapshot because the stream is too long, first ask: "Is my stream identity wrong?" Usually, the answer is yes.

Snapshotting is a performance optimization, not a design problem. Good stream design (proper identity boundaries) often eliminates the need for snapshotting entirely.


Stream Design Analysis Framework

1. Estimate Stream Growth

Formula:

Estimated Stream Length (total events/instance) =
Events Per Aggregate Instance Per Year (events/instance/year)
  × Lifetime of Instance (years)
  × Annual Growth Factor (dimensionless year-over-year multiplier ≥ 1.0)

Quick Examples:

E-commerce Order: 8 events/year × 1.5 year lifetime = 8-16 events → NOT NEEDED

Banking Account: 100-200 events/year × 10 years = 1000-2000 events → CONSIDER AT 1000+

Order Processing: 100+ events/year × 5 years = 300-500+ events → PROBABLY NEEDED

SaaS User: 12-60 events/year × 5 years = 60-300 events → RARELY NEEDED

2. Identify Stream Length Categories

LengthStatusActionSnapshotting
< 50 eventsIDEALKeep as-isNOT NEEDED
50-100 eventsGOODMonitor growthNOT NEEDED
100-300 eventsACCEPTABLEReview boundaryCONSIDER if replayed
300-1000 eventsLONGREDESIGN firstOnly last resort
1000+ eventsCRITICALREDESIGN requiredWon't help

Quick Decision Matrix

Stream LengthRead PatternFrequencyAction
< 50AnyAnyIDEAL - Keep as-is
50-100AnyAnyGood - Monitor
100-300From ModelAnyOK - No snapshot
100-300Stream ReplayLowOK - Monitor
100-300Stream ReplayHighREDESIGN
300-1000From ModelAnyOK - No snapshot
300-1000Stream ReplayAnyREDESIGN
1000+AnyAnyCRITICAL - REDESIGN

Reference Files

Aggregate Boundary Design: See patterns.md for:

  • 5 aggregate patterns (single entity, composite, collections, event logs, historical)
  • Stream size decision tree
  • Red flags that indicate redesign needed
  • Tips for optimal stream design

Snapshotting Strategy: See snapshotting.md for:

  • Criteria for when snapshotting is truly needed
  • Context-based decision thresholds
  • Snapshot frequency, versioning, and cleanup strategies
  • Cost-benefit analysis

Domain-Specific Guidance: See domain-patterns.md for:

  • E-commerce patterns (orders, carts, accounts)
  • Banking patterns (accounts, transactions, loans)
  • SaaS patterns (subscriptions, workspaces, data collections)
  • Implementation checklist

Key Insights

Why Snapshotting Usually Isn't the Answer

Before implementing snapshotting, ask:

1. Can I split this aggregate into smaller ones?
   → YES: Do that instead. Simpler, better design.

2. Can I reduce event granularity?
   → YES: Batch events or create coarser state changes.

3. Am I using a read model for this aggregate?
   → NO: Create a read model (cached projection).
      Stream size becomes irrelevant.

4. Have I measured actual replay latency?
   → NO: Measure first. Most systems exceed expectations.

If ANY of these is YES, do that before snapshotting.
Only after exhausting design improvements, consider snapshots.

The Snapshotting Trade-off

Snapshotting Complexity ≈ 2-3x Complexity of Better Design

Before snapshot:  50 lines of code, simple, testable
With snapshots:   150+ lines, versioning, recovery logic, testing matrix

Better to redesign and keep streams < 300 events.

Quality Checklist

  • Each stream is identified by a business entity identity (e.g., orderId), not a category or type
  • No stream grows unboundedly without a design reason — event frequency and stream lifetime estimated
  • Streams under 1000 events require no snapshotting justification
  • If snapshotting is proposed, all simpler alternatives (split stream, shorter lifetime) have been eliminated first
  • Command handler state is reconstructed from stream events — no persistent state stored outside the stream
  • Each stream can be independently versioned and replayed without affecting other streams

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

32.04%
按下载量换算52

Claude

31.78%
按下载量换算51

Cursor

20.37%
按下载量换算33

Gemini CLI

10.14%
按下载量换算16

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills