Skip to main content

event-driven-architecture

Event-driven architecture, message queues, event sourcing, and CQRS

インストールへ移動

ソース情報

リポジトリ
NeuralBlitz/Mito
ソースの最終更新活動
2026年3月22日 13:29
検出された SKILL.md の言語
英語
スター
0
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
event-driven-architecture
description
Event-driven architecture, message queues, event sourcing, and CQRS
license
MIT
compatibility
opencode
metadata
{"audience":"developers","category":"architecture"}
## 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 ```csharp // 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
GitHubで見る