# kurrent-io/kurrentdb

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/kurrent-io-kurrentdb).**

5,809 stars · 676 forks · C# · NOASSERTION

## Links

- GitHub: https://github.com/kurrent-io/KurrentDB
- Homepage: https://www.kurrent.io/
- awesome-repositories: https://awesome-repositories.com/repository/kurrent-io-kurrentdb.md

## Topics

`cqrs` `database` `event-sourcing` `event-store` `eventsourcing` `eventstore`

## Description

KurrentDB is an event-native database designed for event sourcing and event-driven architectures. It stores events as immutable, ordered records in streams, preserving a complete audit trail and enabling temporal queries. The database uses gRPC for all client-server and inter-node communication, providing efficient binary serialization and bidirectional streaming, and supports atomic multi-stream writes that ensure consistency across multiple streams in a single transaction.

The database distinguishes itself with a built-in JavaScript projection engine that transforms, filters, and aggregates event streams in real time, enabling materialized views and stream composition. It offers durable, checkpointed subscriptions that survive client restarts and network interruptions, and includes a Kubernetes operator for managing cluster lifecycle on Kubernetes. Authentication is handled through a plugin-based system supporting OAuth and LDAP, with role-based access control at the organization and project level.

KurrentDB can be deployed as a managed cloud service on AWS, Azure, or GCP, or as a self-managed instance on user-controlled infrastructure. It provides official gRPC client libraries for Python, Node.js, Java, .NET, Go, and Rust, along with an HTTP API for environments where gRPC is unavailable. The database includes connectors for syncing event streams with external systems, and supports infrastructure automation through Terraform, Pulumi, and a dedicated CLI tool.

## Tags

### Data & Databases

- [Event-Native Databases](https://awesome-repositories.com/f/data-databases/event-native-databases.md) — Stores events as immutable, ordered records in streams, preserving a complete audit trail.
- [Event Stores](https://awesome-repositories.com/f/data-databases/event-stores.md) — Persists events as the single source of truth, preserving their order and structure to maintain a complete audit trail. ([source](https://cdn.jsdelivr.net/gh/kurrent-io/kurrentdb@master/README.md))
- [Atomic Multi-Stream Writes](https://awesome-repositories.com/f/data-databases/atomic-multi-stream-writes.md) — Supports atomic writes to multiple streams in a single transaction with conditional version checks.
- [User-Defined Projection Functions](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/stream-processing-systems/stream-processing/effect-to-stream-conversion/event-to-stream-conversions/user-defined-projection-functions.md) — Transforms and writes events from source streams into new streams using user-defined JavaScript functions. ([source](https://docs.kurrent.io/clients/grpc))
- [Immutable Event Appends](https://awesome-repositories.com/f/data-databases/event-stream-implementation/immutable-event-appends.md) — Persists events as immutable, ordered records in streams, preserving the full audit trail.
- [Managed Event Store Platforms](https://awesome-repositories.com/f/data-databases/event-streaming-platforms/managed-event-store-platforms.md) — A cloud-managed event database platform that provisions clusters on AWS, Azure, or GCP with backup, restore, and network linking capabilities.
- [Event Store gRPC Streaming](https://awesome-repositories.com/f/data-databases/real-time-data-streaming/grpc-data-streaming/event-store-grpc-streaming.md) — Streams events to clients and between nodes using the gRPC protocol for real-time processing. ([source](https://docs.kurrent.io/server/latest/quick-start/))
- [Event Streaming Databases](https://awesome-repositories.com/f/data-databases/real-time-data-streaming/grpc-data-streaming/event-store-grpc-streaming/event-streaming-databases.md) — Runs a built-in projection engine that transforms and materializes event streams as they arrive. ([source](https://cdn.jsdelivr.net/gh/kurrent-io/kurrentdb@master/README.md))
- [JavaScript Projection Functions](https://awesome-repositories.com/f/data-databases/user-defined-functions/javascript-projection-functions.md) — Ships a built-in JavaScript projection engine for real-time event stream transformation and materialized views.
- [Durable Subscription Checkpoints](https://awesome-repositories.com/f/data-databases/data-checkpointing/checkpoint-metadata-tracking/durable-subscription-checkpoints.md) — Maintains persistent subscriptions with checkpointing that survive client restarts and network interruptions.
- [Database Backup and Restore](https://awesome-repositories.com/f/data-databases/database-backup-and-restore.md) — Creates and restores backups of cluster data through the cloud console for disaster recovery. ([source](https://docs.kurrent.io/cloud/))
- [Event Stream Connectors](https://awesome-repositories.com/f/data-databases/event-stream-connectors.md) — Ships built-in connectors that stream events to traditional databases and data pipelines. ([source](https://docs.kurrent.io/))
- [External System Integrations](https://awesome-repositories.com/f/data-databases/external-system-integrations.md) — Connects event streams to traditional databases and data pipelines using pre-built connectors. ([source](https://docs.kurrent.io/))

### Part of an Awesome List

- [Event Store Operators](https://awesome-repositories.com/f/awesome-lists/devops/kubernetes-operators/event-store-operators.md) — A Kubernetes operator that manages event store database instances on a cluster for containerized event-driven applications.
- [Projection Engines](https://awesome-repositories.com/f/awesome-lists/devtools/javascript-engines/projection-engines.md) — Processes event streams through a built-in projection engine to derive views and trigger side effects. ([source](https://docs.kurrent.io/latest.html))
- [Official SDKs](https://awesome-repositories.com/f/awesome-lists/devtools/official-sdks.md) — Provides official client libraries for Python, Node.js, Java, .NET, Go, and Rust. ([source](https://docs.kurrent.io/))
- [Multi-Language gRPC Client Libraries](https://awesome-repositories.com/f/awesome-lists/devtools/official-sdks/multi-language-grpc-client-libraries.md) — Provides official gRPC client libraries for Python, Node.js, Java, .NET, Go, and Rust. ([source](https://cdn.jsdelivr.net/gh/kurrent-io/kurrentdb@master/README.md))
- [Multi-Language gRPC SDKs](https://awesome-repositories.com/f/awesome-lists/devtools/official-sdks/multi-language-grpc-sdks.md) — Provides official gRPC SDKs for Java, Python, Node.js, Go, Rust, and C#. ([source](https://docs.kurrent.io/))
- [Cloud Provisioning Tools](https://awesome-repositories.com/f/awesome-lists/devtools/infrastructure-as-code/cloud-provisioning-tools.md) — Scripts the provisioning and management of cloud resources using Terraform, Pulumi, or a CLI tool. ([source](https://docs.kurrent.io/cloud/))
- [Database Administration CLIs](https://awesome-repositories.com/f/awesome-lists/productivity/admin-and-management/database-administration-clis.md) — EventStoreDB administers the database instance through a command-line interface for operational tasks and configuration. ([source](https://docs.kurrent.io/))

### Development Tools & Productivity

- [Event Stream Reads](https://awesome-repositories.com/f/development-tools-productivity/regex-based-output-parsing/stream-reading/event-stream-reads.md) — Retrieves event records from a stream in order, enabling replay of past state changes or processing of event histories. ([source](https://docs.kurrent.io/clients/grpc/getting-started.html))
- [Database CLI Administration Tools](https://awesome-repositories.com/f/development-tools-productivity/database-cli-administration-tools.md) — Provides a command-line interface for administering database installations and operational tasks. ([source](https://docs.kurrent.io/))
- [Database CLI Tools](https://awesome-repositories.com/f/development-tools-productivity/database-cli-tools.md) — Provides a command-line interface for administering database instances and performing configuration and maintenance tasks. ([source](https://docs.kurrent.io/))
- [Database GUI Administration Tools](https://awesome-repositories.com/f/development-tools-productivity/database-gui-administration-tools.md) — Provides a graphical user interface for administering database installations and operational tasks. ([source](https://docs.kurrent.io/))

### DevOps & Infrastructure

- [Cloud Service Deployers](https://awesome-repositories.com/f/devops-infrastructure/cloud-deployment/cloud-service-deployers.md) — EventStoreDB provisions and runs database clusters on AWS, Azure, or GCP with secure connectivity to existing cloud resources. ([source](https://cdn.jsdelivr.net/gh/kurrent-io/kurrentdb@master/README.md))
- [Managed Database Cluster Provisioning](https://awesome-repositories.com/f/devops-infrastructure/cloud-infrastructure-deployment/managed-infrastructure-deployment/infrastructure-deployment-provisioning/declarative-infrastructure-provisioning/terraform-provisioning/managed-database-cluster-provisioning.md) — Provisions and manages database clusters on AWS, Azure, or GCP through a cloud console. ([source](https://docs.kurrent.io/))
- [Managed Event Store Deployments](https://awesome-repositories.com/f/devops-infrastructure/cloud-infrastructure/cloud-computing-serverless/backend-as-a-service/database-as-a-service-tooling/managed-event-store-deployments.md) — EventStoreDB provisions and runs database clusters on AWS, Azure, or GCP without managing the underlying infrastructure. ([source](https://cdn.jsdelivr.net/gh/kurrent-io/kurrentdb@master/README.md))
- [Operator-Managed Deployments](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-cluster-deployments/operator-managed-deployments.md) — EventStoreDB manages database instances on a Kubernetes cluster using a dedicated operator. ([source](https://docs.kurrent.io/latest/quick-start/installation))
- [Self-Hosted Deployments](https://awesome-repositories.com/f/devops-infrastructure/self-hosted-deployments.md) — EventStoreDB hosts the database on user-controlled infrastructure without relying on a managed cloud offering. ([source](https://cdn.jsdelivr.net/gh/kurrent-io/kurrentdb@master/README.md))
- [Self-Hosted Database Deployments](https://awesome-repositories.com/f/devops-infrastructure/self-hosted-deployments/self-hosted-database-deployments.md) — EventStoreDB installs and operates the database on your own infrastructure without relying on a managed cloud offering. ([source](https://cdn.jsdelivr.net/gh/kurrent-io/kurrentdb@master/README.md))
- [Cloud Infrastructure Automation](https://awesome-repositories.com/f/devops-infrastructure/cloud-infrastructure-automation.md) — Manages cloud resources programmatically using Terraform, Pulumi, or a dedicated CLI tool. ([source](https://docs.kurrent.io/cloud/))
- [SSL-Enabled Cluster Setups](https://awesome-repositories.com/f/devops-infrastructure/cluster-configuration-management/ssl-enabled-cluster-setups.md) — Sets up a three-node cluster with SSL certificates and secure gRPC connections for production use. ([source](https://docs.kurrent.io/latest/quick-start/installation))
- [Authentication Plugin Configurations](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/environment-management/environment-variable-management/environment-variable-configurations/environment-variable-configuration/authentication-plugin-configurations.md) — Configures OAuth and LDAP authentication plugins through environment variables or command-line options. ([source](https://docs.kurrent.io/server/latest/release-schedule/release-notes.html))
- [Database Container Images](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-runtimes/runtime-configuration-interfaces/docker-socket-orchestrators/docker-target-configurators/docker-container-deployments/database-container-images.md) — EventStoreDB starts a single-node or three-node cluster in Docker with optional SSL and persistent volume mapping. ([source](https://docs.kurrent.io/latest/quick-start/installation))
- [Database Admin UIs](https://awesome-repositories.com/f/devops-infrastructure/deployment-management/self-hosted-infrastructure-management/self-hosted-deployment-infrastructure/static-admin-ui-deployment/database-admin-uis.md) — EventStoreDB administers the database, including stream management and configuration, through a graphical user interface. ([source](https://docs.kurrent.io/))
- [Infrastructure Automation Tools](https://awesome-repositories.com/f/devops-infrastructure/infrastructure-automation-tools.md) — Manages cloud resources programmatically using Terraform, Pulumi, or a dedicated CLI tool. ([source](https://docs.kurrent.io/cloud/))
- [Database Cluster Operators](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-cluster-management/database-cluster-operators.md) — Provides a Kubernetes operator for managing database cluster lifecycle, deployment, scaling, and recovery.

### Networking & Communication

- [gRPC Client-Server Toolkits](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/communication-protocols/websocket-implementations/grpc-client-server-toolkits.md) — Uses gRPC for all client-server and inter-node communication with bidirectional streaming.
- [Event Store gRPC Clients](https://awesome-repositories.com/f/networking-communication/grpc-client-implementations/event-store-grpc-clients.md) — Provides official gRPC client libraries for connecting applications to an event store. ([source](https://docs.kurrent.io/clients/grpc/getting-started.html))
- [Multi-Language gRPC Clients](https://awesome-repositories.com/f/networking-communication/grpc-client-implementations/multi-language-grpc-clients.md) — Provides official gRPC client libraries for Python, Node.js, Java, .NET, Go, and Rust. ([source](https://cdn.jsdelivr.net/gh/kurrent-io/kurrentdb@master/README.md))
- [gRPC Event Communication](https://awesome-repositories.com/f/networking-communication/grpc-microservices-integration/grpc-event-communication.md) — Uses gRPC for all client-server and inter-node communication for efficient data exchange. ([source](https://docs.kurrent.io/latest.html))
- [Event Stream Subscriptions](https://awesome-repositories.com/f/networking-communication/real-time-event-streams/publish-subscribe-event-systems/event-stream-subscriptions.md) — EventStoreDB receives new events as they are appended to a stream, enabling real-time reaction to state changes in event-driven architectures. ([source](https://docs.kurrent.io/clients/grpc))
- [Durable Subscriptions](https://awesome-repositories.com/f/networking-communication/message-queue-clients/message-subscription-management/durable-subscriptions.md) — EventStoreDB configures durable, checkpointed subscriptions that track event processing progress and survive client restarts. ([source](https://docs.kurrent.io/clients/grpc))
- [Real-time Event Streams](https://awesome-repositories.com/f/networking-communication/real-time-event-streams.md) — EventStoreDB delivers events to subscribers as they are appended, enabling reactive processing and immediate data propagation. ([source](https://cdn.jsdelivr.net/gh/kurrent-io/kurrentdb@master/README.md))

### Security & Cryptography

- [Role-Based Access Control](https://awesome-repositories.com/f/security-cryptography/role-based-access-control.md) — EventStoreDB manages users, groups, and roles at the organization and project level to restrict who can view or modify resources. ([source](https://docs.kurrent.io/cloud/))
- [Organization and Project Group Roles](https://awesome-repositories.com/f/security-cryptography/role-based-access-control/workspace-role-assignments/group-role-assignments/organization-and-project-group-roles.md) — EventStoreDB invites users to organizations and projects, assigns them to groups, and grants role-based permissions. ([source](https://docs.kurrent.io/cloud/))
- [Organization-Based Access Controls](https://awesome-repositories.com/f/security-cryptography/multi-tenant-hierarchy-organizers/organization-based-access-controls.md) — EventStoreDB separates customers or teams into distinct organizations with independent billing, users, and access control. ([source](https://docs.kurrent.io/cloud/))

### Software Engineering & Architecture

- [Event-Driven Architectures](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-architectures.md) — Building reactive systems that process and propagate events in real time across distributed services.
- [Event Log Projections](https://awesome-repositories.com/f/software-engineering-architecture/reactive-stream-architectures/event-log-projections.md) — Transforms and aggregates event streams into materialized views using a built-in JavaScript projection engine. ([source](https://docs.kurrent.io/clients/grpc))
- [Plugin-Based Authentication Configurations](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/environment-variable-management/environment-variables/environment-variable-based-configuration/plugin-based-authentication-configurations.md) — Loads OAuth and LDAP authentication plugins from environment variables or command-line options.

### Business & Productivity Software

- [Organization-Based Access Management](https://awesome-repositories.com/f/business-productivity-software/organization-management/organization-based-access-management.md) — EventStoreDB manages users, groups, roles, and invitations at the organization level, with separate admin groups for organizations and projects. ([source](https://docs.kurrent.io/cloud/))

### System Administration & Monitoring

- [Project-Based Cloud Groupings](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/resource-organization/project-based-cloud-groupings.md) — EventStoreDB groups cloud resources such as clusters, backups, and networks into logical projects, each with its own administrators and billing. ([source](https://docs.kurrent.io/cloud/))
- [Backup and Restore](https://awesome-repositories.com/f/system-administration-monitoring/backup-disaster-recovery/azure-backup-and-restore/backup-and-restore.md) — Creates and restores backups of cluster data through the cloud console for disaster recovery. ([source](https://docs.kurrent.io/cloud/))

### Web Development

- [RESTful HTTP Interfaces](https://awesome-repositories.com/f/web-development/http-api-integrations/restful-http-interfaces.md) — Provides a REST-oriented HTTP interface for database operations and real-time subscriptions. ([source](https://docs.kurrent.io/latest.html))
