KurrentDB Documentation
website·Indexed 34 days ago
https://docs.kurrent.ioDocumentation for KurrentDB, including guides on client libraries, appending and reading events, managing projections, and configuring catch-up and persistent subscriptions. Includes detailed .NET client support for versions v1.0, v1.1, v1.2, and legacy v23.3, covering authentication via X.509 certificates and observability with telemetry SDK 1.9.0.
What's inside KurrentDB
- Auto-Scavenge automatically schedules and coordinates cluster scavenges, which consist of multiple node scavenges executed across all nodes in a cluster. To minimize impact, the feature executes scavenges on non-leader nodes first; the leader node resigns its leadership before performing its own scavenge. The system ensures only one node scavenge runs at a time and handles restarts or cancellations if a node is lost.
Overview of Persistent Subscriptions
v1.2Persistent subscriptions are server-maintained subscription groups that allow clients to resume from the last known position automatically upon reconnection. Unlike catch-up subscriptions, they support multiple event consumers connected to the same group, with the server load-balancing event distribution based on a defined strategy.Introduction to KurrentDB Client Libraries
KurrentDB provides official client libraries for multiple programming languages to enable integration with its event streaming platform. These libraries are compatible with both Kurrent Cloud and on-premises deployments, providing the necessary APIs and tools for application integration.Introduction to EventStoreDB Projections
v22.10Projections are a subsystem in EventStoreDB used to reactively append new events or link existing events to streams. They are specifically designed for 'temporal correlation queries'—complex event processing where events must be matched based on time windows or specific sequences (e.g., monitoring sensors or stock market changes).
Key constraints:
- Event bodies must be in JSON format.
- Projections only run on the leader node of a cluster to ensure consistency.
- Streams owned by a projection cannot be appended to by external applications; doing so will break the projection's predictability and checkpointing.
Overview of Auto-Scavenge functionality
v26.1Auto-Scavenge automatically schedules and coordinates cluster scavenges, which consist of multiple node scavenges run across all nodes in a cluster. To minimize performance impact, the feature executes scavenges on all non-leader nodes first; the leader node only executes its own scavenge after resigning its leadership. The system ensures only one node scavenge runs at a time and handles restarts or cancellations if a node is lost.Overview of KurrentDB Connectors
v26.1KurrentDB Connectors are server-side components that integrate data from KurrentDB into external systems. They utilize catch-up subscriptions to receive events, which can then be filtered or transformed before being pushed to an external system via a sink. This eliminates the need for developers to host, maintain, and manage checkpoints for custom subscription services. The Connector plugin is pre-installed and enabled by default in all KurrentDB binaries.Overview of EventStoreDB authentication methods
v24.10EventStoreDB supports four primary authentication methods to verify users connecting to the database. Once authenticated, users must be authorized via ACLs to perform actions.
- Basic authentication: Username and password managed within EventStoreDB (enabled by default).
- User X.509 certificates: Authentication via X.509 certificates, allowing a single certificate to be valid across multiple clusters sharing a trusted root CA.
- LDAP authentication: Authentication against LDAP servers like OpenLDAP or Active Directory.
- OAuth authentication: Authentication against identity providers such as Auth0 or Identity Server.
Overview of the Kafka Source Connector
v26.0The Kafka Source Connector allows you to consume messages from an existing Kafka topic and append them into a KurrentDB stream.Overview of EventStoreDB HTTP API (AtomPub)
v24.10EventStoreDB provides a native RESTful interface based on the AtomPub protocol (RFC 4287). It supports content type negotiation via the
Acceptheader or a?format=xmlURL parameter.Warning: AtomPub is disabled by default in EventStoreDB v20+ and is planned for deprecation. For new applications, the gRPC protocol is recommended.
Overview of EventStoreDB custom HTTP headers
v24.10EventStoreDB supports several custom HTTP headers (formerly prefixed withX-ES-, now following RFC-6648). These headers control concurrency, deletion behavior, polling, and node routing.Header Description ES-ExpectedVersion Optimistic concurrency control ES-ResolveLinkTo Resolve linkTos in stream ES-RequiresMaster Force operation on master node ES-TrustedAuth Trusted intermediary authentication ES-LongPoll Long poll stream reads ES-HardDelete Permanent stream deletion ES-EventType Specify event type for posted body ES-EventId Specify event ID for idempotency Overview of Persistent Subscriptions
v1.1Persistent subscriptions are server-maintained subscription groups that allow clients to resume from the last known position automatically upon reconnection. Unlike catch-up subscriptions, they support multiple event consumers connected to the same group, with the server load-balancing events based on a defined strategy.Overview of Persistent Subscriptions in KurrentDB
v1.2Persistent subscriptions are server-maintained subscription groups that allow clients to resume from the last known position automatically upon reconnection. Unlike catch-up subscriptions, they support multiple event consumers connected to the same group, with the server load-balancing event distribution based on a defined strategy.