KurrentDB is a database that's engineered for modern software applications and event-driven architectures. Its event-native design simplifies data modeling and preserves data integrity while the integrated streaming engine solves distributed messaging challenges and ensures data consistency.
"KurrentDB Client Go" is the client for talking to KurrentDB.
The fastest way to add this client to a project is to run go get github.com/kurrent-io/KurrentDB-Client-Go@latest with
go, See INSTALL.md for detailed installation instructions and troubleshooting.
Join our global community of developers.
Development is done on the main branch.
We attempt to do our best to ensure that the history remains clean and to do so, we generally ask contributors to squash
their commits into a set or single logical commit.
The client is built using the Go programming language. To build the client, you need to have Go installed on your machine. You can download it from the official Go website. Once you have Go installed, you can build the client by running the following command in the root directory of the project:
make buildThe build scripts: build.sh and build.ps1 are also available for Linux and Windows respectively to simplify the
build process.
Testing requires Docker and Docker Compose to be installed.
Start all required KurrentDB services using the provided docker-compose configuration:
make start-kurrentdbTo stop the services, you can run:
make stop-kurrentdbYou can launch the tests as follows:
make test
Alternatively, you can run the tests using the go test command:
go test ./...By default, the test suite uses the Docker image: docker.kurrent.io/eventstore/eventstoredb-ee:lts. To run the tests
with a different image, set the environment variables listed below.
For example, to use the commercial image
docker.kurrentio/eventstore-ee/eventstoredb-commercial:23.10.5-commercialb-bookworm-slim, configure your environment
with:
| Variable Name | Example Value |
|---|---|
KURRENTDB_DOCKER_REGISTRY |
docker.kurrentio/eventstore-ee |
KURRENTDB_DOCKER_IMAGE |
eventstoredb-commercial |
KURRENTDB_DOCKER_TAG |
23.10.5-commercialb-bookworm-slim |
These variables combine to form the complete image reference used during testing.
The OAuth authentication tests run against a separate stack (a Keycloak identity
provider plus a KurrentDB node configured for OAuth) defined in
docker-compose.oauth.yml. They are kept apart from the main suite because OAuth
is a licensed feature: the node needs a license key, and the image must include
the OAuth plugin. The TestOAuthAuthenticationSuite suite skips when the stack
is not running, so it does not affect the default make test run.
Set a license key, then start the stack and run the suite:
export KURRENTDB_LICENSE_KEY=<your-license-key>
make start-oauth
go test ./test -run TestOAuthAuthenticationSuite
make stop-oauthThe KURRENTDB_DOCKER_* variables select the image as above; it must be one that
ships the OAuth plugin. These tests are not part of the default CI matrix —
enabling them there requires a license-key secret, a plugin-capable image, and a
matrix entry that runs make start-oauth before the suite.