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.
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 build
The build scripts: build.sh and build.ps1 are also available for Linux and Windows respectively to simplify the
build process.
Start all required KurrentDB services using the provided docker-compose configuration:
make start-kurrentdb
To stop the services, you can run:
make stop-kurrentdb
You 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.
Running the OAuth tests
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-oauth
The 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.