These 18 commits are when the Protocol Buffers files have changed:
Commit: | a50837c | |
---|---|---|
Author: | William Chong |
Add version 2 of Streams and add new Registry proto definitions
Commit: | 9e15b0a | |
---|---|---|
Author: | William Chong | |
Committer: | GitHub |
[DEVEX-189] Rebrand Client (#392) # Highlights 1. Use Rust client for read operations 2. Added a benchmark workflow in GitHub Actions. You can run the benchmark on GitHub by dispatching it manually ```mermaid xychart-beta title "KurrentDB NodeJS Client Performance Comparison" x-axis ["EventStoreDB Client v6.2.1", "KurrentDB Client 1.0.0", "KurrentDB bridge"] y-axis "Events per millisecond" 0 --> 70 bar [31.33, 60.66, 65.58] ``` ## Breaking Changes This document outlines the breaking changes introduced in the upcoming release of the KurrentDB client, which includes a performance boost for read operations as it now uses the Rust client for these operations. **Upgrading users must address these changes to ensure compatibility.** --- ## 1. Client Initialization via Connection String ### What Changed We've removed the class constructor method for initializing `KurrentDBClient`. Clients must now be created using a **connection string**, aligning with patterns used in other clients in our ecosystem. ### Migration Guide #### Old Approach ```typescript // Legacy constructor-based initialization const client = new KurrentDBClient({ { endpoint: "localhost:2113" }, { rootCertificate: node.certs.root }, { username: "admin", password: "changeit" } }); ``` #### Change to ```typescript const client = KurrentDBClient.connectionString`kdb://localhost:2113?tls=false`; ``` > **_NOTE:_** If you were using connection string, the code will remain unchanged. --- ## 2. Node.js 14 Deprecation ### What Changed We've officially dropped support for Node.js 14 following the [Node.js Release Schedule](https://github.com/nodejs/Release?tab=readme-ov-file#release-schedule). ### Action Required - Upgrade to Node.js **v20** or higher (LTS) - If maintaining multiple Node versions, use a version manager like `nvm`: ```bash nvm install --lts nvm use --lts ``` ### Impact - CI/CD pipelines using Node 14 will fail - TypeScript definitions now use features from ES2021+ --- ## 3. Stream Handling Migration to Async Iterables ### What Changed Previously, we supported both event emitter pattern and async iteration. In this release, we've **removed event emitter pattern** and now support only async iteration. ### Migration Guide #### Previously Supported Approaches ```typescript // Event Emitter Pattern client .readAll() .on("data", (event) => handleEvent(event)) .on("error", (err) => handleError(err)); // Async Iteration Pattern try { const stream = client.readAll(); for await (const event of stream) { handleEvent(event); } } catch (err) { handleError(err); } ``` #### Now Required ```typescript try { const stream = client.readAll(); for await (const event of stream) { handleEvent(event); } } catch (err) { handleError(err); } ``` ## 4. Removed the certChain and privateKey options from the KurrentDB client settings constructor ## 5. Rename otel tags Previously, we were using esdb as prefix in opentelemetry tags. With the rebranding efforts, we now changed it to kurrent. **Before** ``` db.esdb.user db.esdb.system db.esdb.operation db.esdb.subscription.id db.esdb.event db.esdb.event.type db.esdb.stream ``` **After** ``` db.kurrent.user db.kurrent.system db.kurrent.operation db.kurrent.subscription.id db.kurrent.event db.kurrent.event.type db.kurrent.stream ```
The documentation is generated from this commit.
Commit: | 565956d | |
---|---|---|
Author: | William Chong | |
Committer: | William Chong |
feat: support kurrentdb protocol and rename package name
The documentation is generated from this commit.
Commit: | d2b2874 | |
---|---|---|
Author: | William Chong | |
Committer: | GitHub |
Convert into monorepo (#367) * Convert into monorepo * Using lerna for managing packages * Add incremental and composite options in tsconfig to improve build optimization and project referencing * Isolate tests into a separate package
Commit: | 5d11c69 | |
---|---|---|
Author: | William Chong | |
Committer: | GitHub |
Deprecate unused protobuf messages (#372) * Deprecate unused protobuf messages
Commit: | e00beb1 | |
---|---|---|
Author: | William Chong | |
Committer: | GitHub |
Add support for caught up and fell behind subscription message (#354) * Add support for caught up and fell behind subscription message * Remove redundant listener arguments in event handling * Rename RegularSubscription to CatchupSubscription
Commit: | a9988a2 | |
---|---|---|
Author: | George Payne |
update projections proto to latest
Commit: | 90b78c4 | |
---|---|---|
Author: | George Payne | |
Committer: | George Payne |
Update `persistent` proto to latest - Regenerate code - Fix build for grpcSettings util
Commit: | eff05f5 | |
---|---|---|
Author: | George Payne | |
Committer: | George Payne |
Update client capabilities to updated serverFeatures api - remove in-client version matching - move version matching to tests only - update tests
Commit: | 85c7ae3 | |
---|---|---|
Author: | George Payne | |
Committer: | George Payne |
Update protos to latest - add extra sed for adding JS_STRING to deprecated uint64 - generate code - update streamname -> streamName
Commit: | 33efa20 | |
---|---|---|
Author: | George Payne |
update protos to latest
Commit: | ef0143b | |
---|---|---|
Author: | George Payne | |
Committer: | George Payne |
Update write events to give correct expected version - update to new proto - enable previously failing test
Commit: | 1e711bd | |
---|---|---|
Author: | George Payne | |
Committer: | George Payne |
[19] Force grpc to use strings for 64bit ints - add `generate:replace` script to add `[jstype = JS_STRING]` if not present - regenerate proto files
Commit: | 65f0442 | |
---|---|---|
Author: | George Payne |
update to latest protos
Commit: | 04e6837 | |
---|---|---|
Author: | YoEight |
Update code generation.
Commit: | b8aa349 | |
---|---|---|
Author: | Mat McLoughlin |
Some refactorings and the addition of stream revision
Commit: | fffb575 | |
---|---|---|
Author: | Mat McLoughlin |
Fleshing out the append test
Commit: | 12f0788 | |
---|---|---|
Author: | Mat McLoughlin |
Creating scripts for generating js from protos