Krati

discontinued

by LinkedIn (SNA team, Jingwei Wu) · since 2010 · also known as sna-projects Krati

LinkedIn's hash-based persistent key-value store for the JVM, tuned for low latency and little GC.

key-valueembedded libraryopen source (permissive)legacy

discontinued. No commits since Sept 2013; last release 0.4.9 (Feb 2013). For embedded JVM key-value storage use RocksDB (RocksJava), LMDB or MapDB.

Overview

Krati is a Java library from LinkedIn's Search, Network and Analytics (SNA) team, released in 2010. It offers array-style stores keyed by integer index and hash-based stores for arbitrary byte keys, writing values into segment files and relying on periodic checkpoints for durability. The pitch was very low latency and high throughput for read-write-heavy services with little effort spent on configuration, performance tuning or JVM garbage collection, and a krati-avro module added Avro-serialized stores. The last release, 0.4.9, came out in February 2013 and the repository has been dormant since.

Strengths & trade-offs

Strengths

  • +Low, predictable latency for read-write-heavy JVM workloads
  • +Minimal tuning and little garbage-collection pressure
  • +Simple array and hash store abstractions with Avro support

Trade-offs

  • −Unmaintained since 2013
  • −No transactions, range scans or secondary indexes
  • −Durability limited to checkpoints and segment logs

Great for

  • +Studying segment-log plus memory-mapped index designs
  • +Legacy JVM services that still embed it

Think twice for

  • −New projects (choose RocksDB, LMDB or MapDB)
  • −Workloads needing ordered scans or transactions

Capabilities

Native or official first-party support · 2 of 25 tracked

✓In-memory
✓Durable persistence
–Transactions
–Joins
–Secondary indexes
–Full-text search
–Vector search
–Geospatial
–JSON
–Change data capture
–Triggers
–Stored procedures
–Materialized views
–TTL / expiry
–Pub/Sub
–Columnar storage
–Compression
–Encryption at rest
–Role-based access
–Time travel
–Branching
–Online schema changes
–Streaming ingest
–Offline sync
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Small · ≤ 100 GB
Horizontal scaling
None
Multi-region
No
Transactions
None
Consistency
Strong
Schema
Schemaless
Architecture
Embedded
Query languages
Java API

Single-JVM library; sharding is up to the application.

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

apis & protocolsJava API
client languagesJava

Alternatives to Krati

Compare all→
RocksDBKey-Value48.2

Meta's embeddable LSM-tree key-value engine, the storage layer under dozens of databases.

krati vs rocksdb →
LMDBKey-Value39.7

Tiny memory-mapped B+tree with ACID transactions and lock-free readers; reached 1.0 in 2026.

krati vs lmdb →
MapDBKey-Value7.6

Embedded Java database exposing concurrent Maps, Sets and Queues backed by disk or off-heap memory.

krati vs mapdb →
Oracle Berkeley DBKey-Value17.0

The 1990s-era embedded key-value library, now Oracle-owned, AGPL-licensed and rarely updated.

krati vs berkeley-db →
LevelDBKey-Value33.4

Google's original small, fast LSM key-value library, now in limited-maintenance mode.

krati vs leveldb →
EhcacheKey-Value17.6

The standard embedded JVM cache, with heap, off-heap and disk tiers and optional Terracotta clustering.

krati vs ehcache →

Krati FAQ

What is Krati?

Krati is a key-value database by LinkedIn (SNA team, Jingwei Wu), first released in 2010. Krati is a Java library from LinkedIn's Search, Network and Analytics (SNA) team, released in 2010. It offers array-style stores keyed by integer index and hash-based stores for arbitrary byte keys, writing values into segment files and relying on periodic checkpoints for durability. The pitch was very low latency and high throughput for read-write-heavy services with little effort spent on configuration, performance tuning or JVM garbage collection, and a krati-avro module added Avro-serialized stores. The last release, 0.4.9, came out in February 2013 and the repository has been dormant since.

Is Krati open source?

Yes. Krati is open source. License: Apache License 2.0.

Does Krati support ACID transactions?

No. Krati does not provide ACID transactions; its consistency model is strong.

Does Krati scale horizontally?

Krati does not scale horizontally; it runs on a single node, so you scale it up rather than out. It is comfortable at small scale (≤ 100 GB).

How can I run Krati?

You can self-host it and embed it in your application.

What is Krati best for?

Krati is a strong fit for studying segment-log plus memory-mapped index designs and legacy JVM services that still embed it. Think twice for new projects (choose RocksDB, LMDB or MapDB).

What are the best alternatives to Krati?

Common alternatives to Krati include RocksDB, LMDB, MapDB, Oracle Berkeley DB and LevelDB. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

Is Krati still maintained?

Krati is discontinued. No commits since Sept 2013; last release 0.4.9 (Feb 2013). For embedded JVM key-value storage use RocksDB (RocksJava), LMDB or MapDB.

How popular is Krati?

Krati ranks #608 of 844 databases on the WhichDB Score (0.8/100), and #110 among key-value databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.