AGENT SKILL
event-driven-architecture
Event-driven architecture, message queues, event sourcing, and CQRS
- License 许可
- MIT
- 所属仓库
- NeuralBlitz/Mito
- 最近更新
- 2026-11-12
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- event-driven-architecture
- license
- MIT
- metadata
- { "audience": "developers", "category": "architecture" }
- description
- Event-driven architecture, message queues, event sourcing, and CQRS
- compatibility
- opencode
03 SKILL.md 正文
What I do
- Design event-driven systems
- Implement message queues and brokers
- Use event sourcing patterns
- Handle asynchronous messaging
- Build event processing pipelines
- Ensure event ordering and delivery
When to use me
When building loosely coupled, scalable systems, microservices, or real-time processing applications.
Core Concepts
Event-Driven Architecture
- Producers emit events
- Consumers react to events
- Decoupled communication
- Temporal coupling eliminated
Event Types
- Domain Events: Business meaningful
- Integration Events: Cross-service communication
- Change Data Capture: Database changes
- System Events: Infrastructure events
Message Patterns
Point-to-Point
- One producer → One consumer
- Queue-based
- Guaranteed processing
Pub/Sub
- One producer → Multiple consumers
- Topic-based
- Event notification
Message Brokers
Apache Kafka
- Distributed event streaming
- High throughput
- Persistence
- Exactly-once semantics
- Use cases: Log aggregation, CDC, Event streaming
RabbitMQ
- Traditional message broker
- Complex routing
- Multiple protocols (AMQP, MQTT, STOMP)
- Use cases: Task queues, RPC
AWS SQS
- Managed queue service
- FIFO queues
- Dead letter queues
- Use cases: Microservices, Batch jobs
NATS
- Lightweight
- Pub/sub, request/reply
- JetStream for persistence
Event Sourcing
Concept
- Store events, not state
- Rebuild state by replaying events
- Complete audit trail
- Time travel debugging
Implementation
// Command
public class PlaceOrderCommand {
public Guid OrderId;
public List<OrderItem> Items;
}
// Event
public class OrderPlacedEvent {
public Guid OrderId;
public List<OrderItem> Items;
public DateTime PlacedAt;
}
// Aggregate
public class Order {
private List<OrderPlacedEvent> _events = new();
public void PlaceOrder(PlaceOrderCommand cmd) {
// Validate
// Create event
var evt = new OrderPlacedEvent(cmd.OrderId, cmd.Items, DateTime.UtcNow);
_events.Add(evt);
}
}
Benefits
- Complete history
- Temporal queries
- Event replay
- Audit trail
- Performance
Challenges
- Event schema evolution
- Eventual consistency
- Performance with many events
- CQRS required
CQRS (Command Query Responsibility Segregation)
Pattern
- Separate read and write models
- Different data structures
- Synchronization via events
Implementation
- Commands: Intent to change
- Queries: Read data
- Read models updated via events
Benefits
- Optimized read/write
- Scalability
- Flexibility
Best Practices
- Idempotent consumers
- Handle duplicates
- Order events appropriately
- Use correlation IDs
- Document event schemas (Avro, Protobuf)
- Version events
- Dead letter handling
04 同仓库更多 Skills
wireless-communications
Wireless systems, mobile networks, and 5G/6G
★ 0
websockets
WebSocket implementation and best practices
★ 0
vulnerability-auditing
Vulnerability assessment and auditing
★ 0
vulnerability-assessment
Finding and assessing security vulnerabilities
★ 0
vlsi-design
Very-Large-Scale Integration circuit design and semiconductor engineering
★ 0
unsupervised
Unsupervised learning concepts
★ 0