<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/how-we-increased-the-read-performance-of-our-nodejs-client-by-2x-using-rust-0rc5a2ke0" -->

---
title: How we increased the read performance of our NodeJS...
description: Kurrent's engineering team diagnosed slow read performance in their NodeJS client for KurrentDB, finding the bottleneck in the underlying gRPC library and...
canonical: https://daily.dev/posts/how-we-increased-the-read-performance-of-our-nodejs-client-by-2x-using-rust-0rc5a2ke0
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: How we increased the read performance of our NodeJS client by 2x using Rust | daily.dev
og:description: Kurrent's engineering team diagnosed slow read performance in their NodeJS client for KurrentDB, finding the bottleneck in the underlying gRPC library and...
og:url: https://daily.dev/posts/how-we-increased-the-read-performance-of-our-nodejs-client-by-2x-using-rust-0rc5a2ke0
og:image: https://api.daily.dev/og/posts/0RC5a2ke0.png
og:image:alt: How we increased the read performance of our NodeJS client by 2x using Rust
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# How we increased the read performance of our NodeJS client by 2x using Rust

**[Event Store](https://daily.dev/sources/eventstore)** · 6 min read · 0 upvotes · 0 comments

## Summary

Kurrent's engineering team diagnosed slow read performance in their NodeJS client for KurrentDB, finding the bottleneck in the underlying gRPC library and Node.js runtime. Rather than rewriting the client, they integrated their existing Rust client into the NodeJS runtime using Neon, a framework for building native Node.js addons in Rust. The hybrid approach replaced performance-critical read operations with compiled Rust code while keeping the existing JavaScript API unchanged. The result was a near-doubling of read throughput, from ~31 to ~60 events per millisecond, with no code changes required from users.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.kurrent.io/blog/how-we-increased-the-read-performance-of-our-nodejs-client-by-2x-using-rust>

## Similar posts on daily.dev

- [kafka 223% Faster \(And What We Learned Along the Way\)](https://daily.dev/posts/kafka-223-faster-and-what-we-learned-along-the-way--anrb0emmw) · Platformatic · 73 upvotes · 0 comments
- [Dmitry Kudryavtsev](https://daily.dev/posts/dmitry-kudryavtsev-km5olll6g) · Hacker News · 1 upvotes · 0 comments
- [I built an actually faster Notion in Rust](https://daily.dev/posts/i-built-an-actually-faster-notion-in-rust-jaos8d0fr) · Lobsters · 57 upvotes · 5 comments
- [AWS shows Rust love at re:Invent: 10 times faster than Kotlin, one tenth the latency of Go • DEVCLASS](https://daily.dev/posts/aws-shows-rust-love-at-re-invent-10-times-faster-than-kotlin-one-tenth-the-latency-of-go-devclas-2oyry2vcw) · DEVCLASS · 22 upvotes · 1 comments

---

Tags: [#performance](https://daily.dev/tags/performance), [#nodejs](https://daily.dev/tags/nodejs), [#rust](https://daily.dev/tags/rust), [#grpc](https://daily.dev/tags/grpc)

[View this post on daily.dev](https://daily.dev/posts/how-we-increased-the-read-performance-of-our-nodejs-client-by-2x-using-rust-0rc5a2ke0)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"How we increased the read performance of our NodeJS client by 2x using Rust","url":"https://daily.dev/posts/how-we-increased-the-read-performance-of-our-nodejs-client-by-2x-using-rust-0rc5a2ke0","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/how-we-increased-the-read-performance-of-our-nodejs-client-by-2x-using-rust-0rc5a2ke0"},"datePublished":"2026-08-04T14:30:29.166Z","dateModified":"2026-08-04T14:31:01.141Z","description":"Kurrent's engineering team diagnosed slow read performance in their NodeJS client for KurrentDB, finding the bottleneck in the underlying gRPC library and...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/4d82671d4b10af48b8932d4f53c2cabd?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/4d82671d4b10af48b8932d4f53c2cabd?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Event Store","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Event Store","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/6e7940e0a29e4b3cbfef11831ec252c2","url":"https://daily.dev/sources/eventstore"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/how-we-increased-the-read-performance-of-our-nodejs-client-by-2x-using-rust-0rc5a2ke0","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"performance,nodejs,rust,grpc","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Event Store","item":"https://daily.dev/sources/eventstore"},{"@type":"ListItem","position":3,"name":"How we increased the read performance of our NodeJS client by 2x using Rust"}]}
```

