Production-grade event-driven architecture skill for Kafka, RabbitMQ, event sourcing, CQRS, and message patterns
View on GitHubpluginagentmarketplace/custom-plugin-system-design
custom-plugin-system-design
January 21, 2026
Select agents to install to:
npx add-skill https://github.com/pluginagentmarketplace/custom-plugin-system-design/blob/main/skills/event-driven/SKILL.md -a claude-code --skill event-drivenInstallation paths:
.claude/skills/event-driven/# Event-Driven Skill
> **Purpose**: Atomic skill for event-driven architecture with comprehensive messaging patterns and delivery guarantees.
## Skill Identity
| Attribute | Value |
|-----------|-------|
| **Scope** | Kafka, RabbitMQ, Event Sourcing, CQRS |
| **Responsibility** | Single: Async messaging and event patterns |
| **Invocation** | `Skill("event-driven")` |
## Parameter Schema
### Input Validation
```yaml
parameters:
event_context:
type: object
required: true
properties:
use_case:
type: string
enum: [pub_sub, work_queue, event_sourcing, cqrs, saga]
required: true
requirements:
type: object
required: true
properties:
throughput:
type: string
pattern: "^\\d+[KM]?\\s*msg/s$"
latency:
type: string
pattern: "^\\d+\\s*(ms|s)$"
ordering:
type: string
enum: [none, partition, global]
delivery:
type: string
enum: [at_most_once, at_least_once, exactly_once]
retention:
type: string
pattern: "^\\d+\\s*(hours?|days?|weeks?)$"
producers:
type: array
items: { type: string }
minItems: 1
consumers:
type: array
items: { type: string }
minItems: 1
validation_rules:
- name: "exactly_once_complexity"
rule: "delivery == 'exactly_once' implies warn_complexity"
warning: "Exactly-once requires idempotent consumers"
- name: "global_ordering_throughput"
rule: "ordering == 'global' implies throughput <= '10K msg/s'"
warning: "Global ordering limits throughput to single partition"
```
### Output Schema
```yaml
output:
type: object
properties:
broker:
type: object
properties:
technology: { type: string }
rationale: { type: string }
topology:
type: object
properties:
topics: { type: array }
part