kurrentdb

Provides KurrentDB (EventStoreDB) client code for event sourcing and CQRS. Generates correct package names, connection strings, and API patterns for Python, Node.js, .NET, F#, Go, Java, Rust. Triggers on "kurrentdb", "eventstore", "event sourcing", "append events", "read stream", "subscription", "aggregate", "CQRS".

$ 설치

git clone https://github.com/kurrent-io/coding-agent-skills /tmp/coding-agent-skills && cp -r /tmp/coding-agent-skills/kurrent_skills ~/.claude/skills/coding-agent-skills

// tip: Run this command in your terminal to install the skill


name: kurrentdb description: Provides KurrentDB (EventStoreDB) client code for event sourcing and CQRS. Generates correct package names, connection strings, and API patterns for Python, Node.js, .NET, F#, Go, Java, Rust. Triggers on "kurrentdb", "eventstore", "event sourcing", "append events", "read stream", "subscription", "aggregate", "CQRS".

KurrentDB Development Skill

Provides working code for KurrentDB (formerly EventStoreDB) - the event-native database.

When to Read Additional Files

NeedRead
Full API reference for any languagereference.md
Ready-to-run project templatestemplates/{language}/

Quick Reference

Docker Setup (Insecure Single Node)

docker run --name kurrentdb-node -it -p 2113:2113 \
    docker.kurrent.io/kurrent-latest/kurrentdb:latest \
    --insecure --run-projections=All --enable-atom-pub-over-http

Or use docker-compose - see templates/docker-compose.yaml

Connection String: kurrentdb://localhost:2113?tls=false Web UI: http://localhost:2113

Client Installation Quick Reference

LanguageInstall Command
.NET/C#dotnet add package KurrentDB.Client
F#dotnet add package KurrentDB.Client
JavaAdd com.eventstore:db-client-java:5.3.2 to pom.xml
Pythonpip install kurrentdbclient
Node.jsnpm install @kurrent/kurrentdb-client
Gogo get github.com/kurrent-io/KurrentDB-Client-Go/kurrentdb
RustAdd kurrentdb = "1.0" to Cargo.toml

Key API Patterns

Optimistic Concurrency (CRITICAL)

ALWAYS use expected revision for aggregates:

  • NO_STREAM - Creating new aggregate (stream must not exist)
  • StreamExists - Appending to existing stream
  • Specific revision number - Prevent concurrent modifications

Subscriptions

  • Catch-up: Read history + live events. Use for projections.
  • Persistent: Server-managed with ACK/NACK. Use for reliable processing.

System Streams

  • $ce-{category} - All events from streams matching pattern (e.g., $ce-order for order-*)
  • $et-{eventType} - All events of a type (e.g., $et-OrderCreated)

Official Documentation