event-driven
Event-driven architecture with pub/sub and message queues. Use for reactive systems.
Best use case
event-driven is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Event-driven architecture with pub/sub and message queues. Use for reactive systems.
Teams using event-driven should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/event-driven/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How event-driven Compares
| Feature / Agent | event-driven | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Event-driven architecture with pub/sub and message queues. Use for reactive systems.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Event-Driven Architecture (EDA)
EDA is a software architecture paradigm promoting the production, detection, consumption of, and reaction to events. In 2025, it is the backbone of real-time, scalable, and decoupled systems.
## When to Use
- When strict decoupling is required (Producer doesn't know Consumer).
- High-volume, bursty traffic (using buffering queues).
- Asynchronous workflows (e.g., "User Signed Up" -> Send Email, Create Wallet, Analytics).
- Real-time updates (WebSockets/Push).
## Quick Start
```typescript
// Producer (Order Service)
await messageBroker.publish("order.created", {
orderId: "123",
userId: "456",
timestamp: Date.now(),
});
// Consumer (Shipping Service)
// Doesn't need to be online when order is created
messageBroker.subscribe("order.created", async (event) => {
await shippingService.schedulePickup(event.orderId);
console.log("Shipping scheduled");
});
// Consumer (Analytics Service)
// New feature added later? No changes to Order Service!
messageBroker.subscribe("order.created", async (event) => {
await analytics.trackRevenue(event);
});
```
## Core Concepts
### Event
A significant change in state (Immutable fact). "OrderCreated" not "CreateOrder".
### Broker (Event Bus)
The middleware (Kafka, RabbitMQ, SNS/SQS) that receives, stores, and routes events.
### Pub/Sub
Pattern where publishers send messages to a topic, and multiple subscribers receive them independently.
## Common Patterns
### Event Sourcing
Storing the state of an entity as a sequence of state-changing events rather than the current snapshot.
### CQRS (Command Query Responsibility Segregation)
Separating the Read and Write models. Writes publish events; Reads update a denormalized view based on those events.
### Transactional Outbox
Ensuring data consistency. Write the event to a DB table _in the same transaction_ as the business logic, then a background worker pushes it to the broker.
## Best Practices
**Do**:
- Use **Schemas** (Avro, Protobuf, JSON Schema) to govern event structure (Schema Registry).
- Ensure **Idempotency** in consumers (handling the same message twice safely).
- Monitor **Lag** (how far behind consumers are).
**Don't**:
- Don't use events for synchronous queries (Request/Response via queues is painful).
- Don't put huge payloads in events (Pass ID + Metadata, reference Blob Storage if needed).
## Tools
- **Kafka / Redpanda**: High throughput, log-based (replayable).
- **RabbitMQ / ActiveMQ**: Queue-based, complex routing.
- **AWS SNS/SQS / Google PubSub**: Cloud native.
## References
- [Event-Driven Architecture](https://aws.amazon.com/event-driven-architecture/)
- [AsyncAPI Specification](https://www.asyncapi.com/)Related Skills
event-sourcing
Event sourcing event-based persistence. Use for audit trails.
domain-driven-design
DDD tactical and strategic patterns. Use for complex domains.
template
Expert [skill-name] assistance covering [feature 1], [feature 2], and [feature 3]. Use when [working with X], [debugging Y], or [implementing Z].
zsh
Zsh shell with oh-my-zsh. Use for terminal shell.
zed
Zed high-performance collaborative editor. Use for fast editing.
xcode
Xcode Apple development IDE with simulators. Use for iOS/macOS development.
webstorm
WebStorm JavaScript IDE with debugging. Use for web development.
webpack
Webpack module bundler with loaders and plugins. Use for bundling.
warp
Warp modern terminal with AI. Use for terminal work.
vscode
Visual Studio Code editor with extensions and debugging. Use for code editing.
vite
Vite fast build tool with HMR. Use for modern frontend builds.
visual-studio
Visual Studio IDE for Windows with debugging and profiling. Use for .NET development.