Design and evaluate event-driven, message-based, and asynchronous system architectures.
The material indicates this is an open-source, prompt-only/documentation-style systems design skill with no required secrets, no remote endpoints, and no apparent code execution or data access capability, so overall risk is low. The repository has low community adoption and unknown maintenance status, but no concrete high-risk red flags are evident from the provided facts.
The material explicitly states that no keys or environment variables are required; as a prompt-only/documentation-style skill, there is no visible path for credential collection, storage, or misuse.
The material states there are no remote endpoints, and the content is limited to event-driven architecture guidance; there is no indication of user data being sent to external services.
The system flags it as prompt-only, and the README contains only architecture pattern guidance; there is no sign of spawning local processes, executing scripts, or invoking system capabilities.
There is no declared need to read or write local files, databases, messaging systems, or other resources; based on the material, its role is limited to providing design knowledge and does not involve data access permissions.
The source is an auditable open-source GitHub repository, which is a positive factor; however, the license is unspecified, it has 0 stars, and maintenance status is unknown, indicating weaker supply-chain maturity and upkeep signals. Review the repository contents before production use.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "system-type-event-driven" skill from askskill: 1. Download https://raw.githubusercontent.com/microsoft/amplifier-bundle-systems-design/main/skills/system-type-event-driven/SKILL.md 2. Save it as ~/.claude/skills/system-type-event-driven/SKILL.md 3. Reload skills and tell me it's ready
Design an event-driven architecture for an e-commerce order system covering order creation, payment, inventory deduction, shipping, and refunds. Explain event topics, pub/sub relationships, saga orchestration or choreography, retry strategy, and how to ensure idempotency under at-least-once delivery.
An architecture design describing event flows, service boundaries, saga approach, and idempotency and retry strategies.
I plan to use CQRS and event sourcing in an account system. Review whether the design is appropriate. Evaluate it in terms of read/write separation benefits, event store design, snapshot strategy, schema evolution, replay risks, and consistency trade-offs.
A structured review listing fit conditions, major risks, key trade-offs, and improvement recommendations.
Our asynchronous messaging system occasionally experiences message loss and duplicate consumption. Based on common failure modes in event-driven systems, provide a systematic troubleshooting checklist covering producer acknowledgments, broker persistence, consumer offset commits, dead-letter queues, retry storms, and monitoring metrics.
A troubleshooting checklist organized by failure point, with priorities, diagnosis methods, and remediation suggestions.
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:
…
Design and assess enterprise integration patterns, legacy modernization, and orchestration strategies.
Review system designs with a seven-step method to surface risks and improvements.
Evaluate system designs through Unix/Linux principles for simplicity and composability.
Design or assess Azure system architectures, operations, and cloud service choices.
Design and evaluate data pipelines, streaming systems, and ETL architecture patterns.
Design offline-first edge systems with sync, conflict handling, and weak-network resilience.
Design and evaluate real-time collaborative systems, sync flows, and failure handling.
Model complex domains and define system boundaries with Domain-Driven Design.
Design or evaluate web services, APIs, scalability, and reliability tradeoffs.
Design and evaluate CLI tools and developer SDK architecture and usability.
Design and evaluate core mechanisms, tradeoffs, and failures in distributed systems.
Design and assess ML training, serving, and experimentation system architectures.