帮助设计和评估事件驱动、消息驱动与异步工作流系统架构。
该技能材料显示其为开源的纯提示词/文档型系统设计内容,不要求密钥、无远程端点,也未体现代码执行或数据访问能力,整体风险较低。需注意其仓库社区采用度低、维护状态未知,但基于现有材料未见具体高风险红旗。
材料明确注明不需要密钥或环境变量;作为纯提示词/文档型技能,未见凭证收集、存储或滥用路径。
材料注明无远程端点,且内容仅为事件驱动架构设计说明;未见将用户数据发送到外部服务的描述。
系统检查项标记为 prompt-only,README 也仅含架构模式说明,未显示会在本机启动进程、执行脚本或调用系统能力。
未声明需要读取或写入本地文件、数据库、消息系统或其他资源;从材料看其作用仅是提供设计知识,不涉及数据访问授权。
来源为 GitHub 开源仓库且可审计,这是正面因素;但许可证未声明、0 star、维护状态未知,说明供应链成熟度与持续维护信号较弱,建议在纳入生产前自行复核仓库内容。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "system-type-event-driven" 技能: 1. 下载 https://raw.githubusercontent.com/microsoft/amplifier-bundle-systems-design/main/skills/system-type-event-driven/SKILL.md 2. 保存为 ~/.claude/skills/system-type-event-driven/SKILL.md 3. 装好后重载技能,告诉我可以用了
请为电商订单系统设计一个事件驱动架构,覆盖下单、支付、库存扣减、发货与退款流程。要求说明应使用的事件主题、发布订阅关系、Saga 编排或协同方式、失败重试策略,以及至少一次投递下如何保证幂等。
一份包含事件流、服务边界、Saga 方案、幂等与重试策略的架构设计说明。
我准备在账户系统中采用 CQRS 和事件溯源,请帮我评审方案是否合理。请从读写分离收益、事件存储设计、快照策略、模式演进、回放风险和一致性取舍几个方面给出优缺点与建议。
一份结构化评审结果,列出适用条件、主要风险、关键取舍与改进建议。
我们的异步消息系统偶发消息丢失和重复消费。请基于事件驱动系统常见失效模式,给出系统化排查清单,覆盖生产者确认、Broker 持久化、消费者偏移提交、死信队列、重试风暴和监控指标。
一份按故障点分类的排查清单,并附带优先级、定位方法和修复建议。
Patterns, guarantees, and failure modes for event-driven and message-based architectures.
What it is. Producers publish events to a topic; consumers subscribe and receive independently. Decouples producers from consumers. When to use. Fan-out notifications, audit logging, updating multiple read models, cross-domain integration where the producer shouldn't know about consumers. When to avoid. When you need a synchronous response. When ordering across topics matters. When the number of consumers is always exactly one (point-to-point is simpler).
What it is. Store state as a sequence of immutable events rather than current-state snapshots. Current state is derived by replaying events. When to use. Audit requirements (financial, regulatory). When you need to reconstruct historical state. When different consumers need different projections of the same data. When to avoid. CRUD-heavy domains with simple state. When event schema evolution is harder than the audit benefit. When the team has no experience with eventual consistency patterns. When query patterns require complex joins across aggregates.
What it is. Separate the write model (commands) from the read model (queries). Each is optimized for its access pattern. When to use. When read and write patterns are drastically different (many reads, few writes, or vice versa). When you need different data shapes for different consumers. Pairs naturally with event sourcing. When to avoid. Simple domains where read and write models are essentially the same. When the consistency lag between write and read models is unacceptable. When the operational complexity of maintaining two models exceeds the benefit.
What it is. Coordinate a multi-step business process across services using a sequence of local transactions with compensating actions for rollback. When to use. Business processes that span multiple services and need all-or-nothing semantics without distributed transactions. When to avoid. When a single database transaction suffices. When the compensating actions are harder to implement correctly than the forward actions.
Choreography: Each service listens for events and decides independently what to do next. No central coordinator. Good for simple flows with few steps. Becomes opaque when flows are complex — the process is implicit in the event chain. Orchestration: A central coordinator explicitly directs each step. Easier to understand, monitor, and modify complex flows. The orchestrator is a single point of failure and a coupling point. The real question: How many steps? Fewer than 4: choreography is simpler. More than 4: orchestration is easier to reason about and debug.
At-most-once. Fire and forget. Message may be lost. Use for: metrics, non-critical notifications, telemetry where gaps are acceptable.
At-least-once. Messages are retried until acknowledged. Messages may be delivered more than once. Use for: anything where losing a message is worse than processing it twice. Requires idempotent consumers.
Exactly-once. Each message processed exactly once. In distributed systems, this is achieved through at-least-once delivery + idempotent processing (not through the broker alone). Use for: financial transactions, inventory updates, anything where duplicates cause real harm.
The practical reality: Most systems use at-least-once delivery with idempotent consumers. Exactly-once semantics from the broker (e.g., Kafka transactions) have significant performance and complexity costs.
Every consumer in an at-least-once system must handle duplicate messages safely.
Strategies:
…
帮助设计可离线运行的边缘系统,处理同步、冲突恢复与弱网故障场景。
帮助设计与评估企业系统集成方案,覆盖遗留改造、网关、事件与失效模式。
用于按七步法系统审查架构设计,识别风险、权衡并产出改进建议。
用 Unix/Linux 设计哲学评估系统方案的可组合性、简洁性与关注点分离。
帮助用户设计或评估基于 Azure 的系统架构与运维方案
帮助设计和评估多租户SaaS的平台隔离、计量计费与稳定性方案
帮助设计与评估实时协作系统的连接、同步、冲突处理与故障模式
用领域驱动设计方法梳理复杂业务域、服务边界与系统架构决策。
帮助你设计或评估Web服务架构、API模式、扩展性与可靠性问题。
帮助设计或评估命令行工具与开发者 SDK 的架构、兼容性和使用体验
帮助设计与评估数据管道架构,覆盖批流处理、调度、质量与故障策略。
帮助用户设计与评估分布式系统的核心机制、权衡与故障处理方案