event-store-design

Design event stores with append-only, per-stream versioning and idempotent writes.

Updated Mar 18, 2026
One-click install
npx skills add https://github.com/ekremmkasap/jarvis --skill event-store-design-ekremmkasap
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: event-store-design
Source: https://github.com/ekremmkasap/jarvis/tree/main/server/agent_prompts/wshobson/plugins/backend-development/skills/event-store-design
Command: npx skills add https://github.com/ekremmkasap/jarvis --skill event-store-design-ekremmkasap

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Event-store design provides a structured approach to building immutable, per-stream, versioned event histories for event-sourced systems, enabling reliable state reconstruction and auditability.

Core Features & Use Cases

  • Append-only, per-stream versioning for accurate history.
  • Technology comparisons and schema guidance for Postgres, EventStoreDB, Kafka, and DynamoDB.
  • Guidance on snapshots, subscriptions, and idempotent writes to support real-time processing and replayability.
  • Use Case: When architecting a new domain model, apply this skill to select the best event-store technology, model streams, and design schemas.

Quick Start

Outline an event-store design plan for your current project and draft initial schemas.

Frequently Asked Questions about event-store-design

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I design an event store for an event-sourced system?

Designing an event store involves creating immutable, append-only, per-stream versioned event histories to ensure reliable state reconstruction. You must model streams, design schemas, and implement idempotent writes to support real-time processing and replayability.

What is the best way to compare technologies for building an event store?

Comparing event store technologies involves evaluating Postgres, EventStoreDB, Kafka, and DynamoDB against your specific needs. Key factors include append-only semantics, per-stream ordering, versioning, subscriptions, and idempotent write capabilities across distributed services.

How does append-only per-stream versioning work in event sourcing?

Append-only per-stream versioning ensures accurate history by strictly appending immutable events to specific streams in sequence. This guarantees reliable state reconstruction and auditability without modifying or deleting past events within the event store architecture.

When do I need snapshots and subscriptions in my event store?

You need snapshots and subscriptions in your event store to support real-time processing and replayability. Snapshots optimize state reconstruction by caching aggregate states, while subscriptions enable downstream services to react to new events asynchronously.

Can I use Postgres or DynamoDB as an event store for distributed services?

Yes, you can use Postgres or DynamoDB as an event store for distributed services. Both platforms are evaluated for their ability to handle append-only semantics, per-stream ordering, versioning, subscriptions, and idempotent writes in scalable architectures.

How do I implement idempotent writes in an event store?

Implementing idempotent writes in an event store requires designing schemas that reject duplicate events within a stream. This ensures that replaying identical events yields the same state, maintaining reliable state reconstruction and accurate per-stream versioning.