Skip to content

TidesDB for Kafka Streams - Drop-in RocksDB Replacement

TidesDB for Kafka Streams

by Alex Gaetano Padula

published on January 26th, 2026

Kafka Streams is powerful. The default state store, RocksDB, is battle-tested. But what if you could do better?

Today we’ve dropped the TidesDB Kafka Streams plugin - a drop-in replacement for RocksDB that brings TidesDB’s lock-free and adaptive architecture to your streaming applications.

Why Switch?

The benchmarks speak for themselves. Across 8 different workload types, TidesDB outperforms RocksDB rather consistently.

Full benchmark data available in Github repository here.

How Easy Is It?

Three lines of code. That’s it.

Before (RocksDB)

StreamsBuilder builder = new StreamsBuilder();
KTable<String, Long> counts = source
.groupBy((key, value) -> value)
.count();

After (TidesDB)

StreamsBuilder builder = new StreamsBuilder();
KTable<String, Long> counts = source
.groupBy((key, value) -> value)
.count(Materialized.as(new TidesDBStoreSupplier("counts-store")));

Import TidesDBStoreSupplier, pass it to Materialized.as(), done.

Installation

Terminal window
git clone https://github.com/tidesdb/tidesdb-kafka.git
cd tidesdb-kafka
./install.sh
./run.sh # Test, benchmark, generate charts, etc

The install script handles everything - building TidesDB, the JNI bindings, and installing the plugin to your local Maven repository.

What You Get

  • 2x faster writes — TidesDB’s lock-free block manager eliminates write contention
  • Lower latency — No locks means no waiting
  • Better compression — TidesDB’s columnar storage reduces disk footprint
  • Same API — Full KeyValueStore interface compatibility

The same architectural advantages that make TidesDB fast on modest hardware translate directly to Kafka Streams. Your state stores benefit from lock-free concurrency, atomic operations, and efficient storage layout.

Try It

Run the benchmarks yourself:

Terminal window
:~/tidesdb-kafka$ ./run.sh
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░ TidesDB Kafka Streams -- Test Runner ░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
Usage: ./run.sh [options]
Options:
-t, --tests Run unit tests
-b, --benchmarks Run benchmarks
-c, --charts Generate charts from benchmark data
-a, --all Run everything
-h, --help Show this help message

The numbers don’t lie. Give it a try.

Thanks for reading!


Links

Join the TidesDB Discord for more updates and discussions at https://discord.gg/tWEmjR66cy