explaingit

kurrent-io/kurrentdb

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

TLDR

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
Click or tap to explore — scroll the page freely

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

Things people build with this

USE CASE 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

USE CASE 2

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

USE CASE 3

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

USE CASE 4

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

Tech stack

C#JavaScriptgRPCDocker

Getting it running

Difficulty · moderate Time to first run · 30min

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

In plain English

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.

Copy-paste 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?
Open on GitHub → Explain another repo

← kurrent-io on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.