gitwtfhub

wtf is kurrentdb?

kurrent-io/kurrentdb — explained in plain English

Analysis updated 2026-06-26

5,792C#Audience · developerComplexity · 4/5Setup · moderate

TL;DR

An event-sourcing database (formerly EventStoreDB) that stores every change as an ordered sequence of events rather than just the current state, with built-in streaming so subscribers get notified in near real time as events are written.

Mindmap

mindmap
  root((KurrentDB))
    What it does
      Event sourcing DB
      Full history storage
      Built-in streaming
    Architecture
      Ordered event streams
      Subscriber push
      No external broker
    Clients
      Python Node.js Java
      Go Rust dotNET
      gRPC protocol
    Deployment
      Docker image
      Windows Linux macOS
      Kurrent Cloud managed

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Record the full history of every change in your app so you can audit past states or replay events to rebuild data in a new format

REASON 2

Build distributed systems where services react to events as they are written without needing a separate message queue

REASON 3

Migrate an existing EventStoreDB setup to KurrentDB, the software is identical, only the name changed

REASON 4

Deploy a managed event-sourcing database cluster on AWS, Azure, or Google Cloud using Kurrent Cloud without managing infrastructure yourself

What's in the stack?

C#JavaScriptgRPCDocker

How it stacks up

kurrent-io/kurrentdblambci/docker-lambdadotnetnext/sqlsugar
Stars5,7925,7875,804
LanguageC#C#C#
Setup difficultymoderateeasyeasy
Complexity4/52/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Easiest start is the official Docker image, full cluster setup on your own infrastructure requires more configuration.

Wtf does this do

KurrentDB is a database built specifically for event-driven software architectures. Rather than storing only the latest state of your data (as a typical relational database does), KurrentDB records every change as an ordered sequence of events. This design pattern, often called event sourcing, makes it straightforward to reconstruct the full history of what happened in your application, audit past states, or replay events to rebuild data in a new format. The project was previously called EventStoreDB, published by a company called Event Store. That company has rebranded to Kurrent, and the product has been renamed KurrentDB accordingly. The underlying software is the same, only the name changed. KurrentDB includes a streaming engine that handles messaging between parts of a distributed system. Instead of bolting on a separate message queue, the database itself can push new events to subscribers as they are written. This means an application can both persist events and react to them in near real time without needing an external broker. The database is written in C# and JavaScript, runs on Windows, Linux, and macOS, and communicates with client applications over the gRPC protocol. Official client libraries are available for Python, Node.js, Java.NET, Go, and Rust. Community-maintained clients exist for Elixir and Ruby as well. You can run KurrentDB yourself by building from source or using the provided Docker image. Alternatively, Kurrent offers a managed cloud service called Kurrent Cloud, which provisions and operates KurrentDB clusters on AWS, Azure, or Google Cloud on your behalf. The cloud option is aimed at teams that want the capabilities of the database without managing the infrastructure.

Yoink these prompts

Prompt 1
Show me how to connect a Python application to KurrentDB using the official client library and append a basic event to a stream
Prompt 2
What is event sourcing and how does KurrentDB implement it differently from a regular PostgreSQL or MySQL database? Explain with a concrete example
Prompt 3
How do I set up KurrentDB locally using Docker so I can start testing event writes and subscriptions without configuring a full cluster?
Prompt 4
Walk me through how subscriptions work in KurrentDB, how does a service subscribe to a stream and receive new events as they are written?
Prompt 5
I am migrating from EventStoreDB to KurrentDB. What steps do I need to take and are there any breaking changes I should be aware of?

Frequently asked questions

wtf is kurrentdb?

An event-sourcing database (formerly EventStoreDB) that stores every change as an ordered sequence of events rather than just the current state, with built-in streaming so subscribers get notified in near real time as events are written.

What language is kurrentdb written in?

Mainly C#. The stack also includes C#, JavaScript, gRPC.

How hard is kurrentdb to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is kurrentdb for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.