event-store-design
Design and implement event stores for event-sourced systems. Use when building event sourcing infrastructure, choosing event store technologies, or implementing event persistence patterns.
By wshobson · 9,667 installs
npx skills add wshobson/agents --skill event-store-design
Source repository · Upstream listing
Event Store Design
Comprehensive guide to designing event stores for event sourced applications.
When to Use This Skill
Designing event sourcing infrastructure
Choosing between event store technologies
Implementing custom event stores
Optimizing event storage and retrieval
Setting up event store schemas
Planning for event store scaling
Core Concepts
1. Event Store Architecture
2. Event Store Requirements
Requirement Description
Append only Events are immutable, only appends
Ordered Per stream and global ordering
Versioned Optimistic concurrency control
Subscriptions Real time event notifications
Idempotent Handle duplicate writes safely
Technology Comparison
Technology Best For Limitations
EventStoreDB Pure event sourcing Single purpose
PostgreSQL Existing Postgres stack Manual implementation
Kafka High throughput streaming Not ideal for per stream queries
DynamoDB Serverless, AWS native Query limitations
Marten .NET ecosystems .NET specific
Templates and detailed worked examples
Full template library and detailed worked examples live in references/details.md . Read that file when you need the concrete templates.
Best Practices
Do's
Use stream IDs that include aggregate type Order {uuid}
Include correlation/causation IDs For tracing
Version events from day one Plan for schema evolution
Implement idempotency Use event IDs for deduplication
Index appropriately For your query patterns
Don'ts
Don't update or delete events They're immutable facts
Don't store large payloads Keep events small
Don't skip optimistic concurrency Prevents data corruption
Don't ignore backpressure Handle slow consumers