Kronotop: A database per tenant, with transactions that span all of them

mastabadtomm1 pts0 comments

Kronotop: a distributed, transactional document database built on FoundationDB<br>Skip to content

BEGIN<br>COMMIT

Bucket<br>documents<br>ZMap<br>key-value

FoundationDB<br>strictly serializable · automatic sharding

Millions of databases. One transaction.<br>Developer previewv2026.06-3 Give every tenant, AI agent, or workspace its own namespace, then commit across all of them atomically.

Quickstart Why Kronotop? GitHub

Apache 2.0 · Built on FoundationDB · Speaks RESP

Atomic across models<br>Section titled “Atomic across models”

A single transaction can write a document and update a counter across isolated<br>namespaces, atomically:

One transaction, two modelsBEGIN

# In the sales namespace: record a new order.

NAMESPACE USE production.sales

BUCKET.INSERT orders DOCS '{"item": "keyboard", "qty": 2, "price": 49.99}'

# In the inventory namespace: decrement stock, conflict-free.

NAMESPACE USE production.inventory

ZINC.I64 keyboard -2

COMMIT

Read it back with BQLNAMESPACE USE production.sales

BUCKET.QUERY orders '{ "qty": { "$gte": 2 } }'

1# "cursor_id" => (integer) 1

2# "entries" => 1) {"_id": "6a133c8806bf494c9e7e00cb", "item": "keyboard", "qty": 2, "price": 49.99}

(integer) 12# "entries" => 1) {"_id": "6a133c8806bf494c9e7e00cb", "item": "keyboard", "qty": 2, "price": 49.99}">

A namespace per tenant<br>Section titled “A namespace per tenant”

A namespace is a lightweight logical database, just a FoundationDB directory<br>prefix, so creating one costs nothing and adds zero runtime overhead. Run many<br>of them on one cluster, and a single transaction can still commit across any of<br>them.

Why Kronotop?<br>Section titled “Why Kronotop?”

When an application uses separate systems for documents, queues, key-value data, and<br>counters, each one has its own consistency model and failure modes. They share no<br>distributed commit protocol like 2PC or XA, so there is no atomic write across them;<br>the workarounds are retry loops, outbox tables, and saga coordinators.

Kronotop removes the workaround: FoundationDB’s consensus and conflict detection<br>handle the atomic commit, so your application coordinates nothing.

The same boundary scales to tenants. Instead of provisioning a database per<br>customer or enforcing isolation in application code, each tenant, AI agent, or<br>workspace gets its own namespace at no extra cost.

FoundationDB has a decade of production use and is validated with deterministic<br>simulation testing.

Kronotop speaks RESP, so it works with the RESP-compatible clients you already<br>use.

Core concepts<br>Section titled “Core concepts”

Bucket Document model storing BSON, with a query language (BQL), secondary indexes, and sorting.<br>ZMap Ordered key-value model with range scans and conflict-free atomic counters.<br>Transactions Strictly serializable by default, inherited from FoundationDB. Auto-commit or explicit BEGIN/COMMIT.<br>Namespaces Lightweight logical databases with keyspace-level isolation, built on FoundationDB directories.<br>Vector search Approximate nearest-neighbor search over document vector fields, powered by JVector (HNSW).<br>Clustering Sharded, distributed deployment with primary-standby replication, where coordination is handled by FoundationDB.

Use cases<br>Section titled “Use cases”

AI agent context store<br>Namespace-level isolation, vector search, and transactional updates for agent memory.

Transactional document store<br>A horizontally scalable document store backed by strictly serializable transactions.

Distributed coordination<br>Lease-based locks with atomic acquire, safe release, and fencing tokens from versionstamped commits.

Ordered key-value<br>Range scans, counters, and conflict-free atomic mutations on the ZMap model.

Benchmarks<br>Section titled “Benchmarks”<br>Read-only Bucket queries against 50,000 documents, with FoundationDB in<br>single-redundancy mode on EC2:<br>23,008queries/sec, sorted reads<br>2.88 msp99 latency

QueryThroughputp99Indexed equality11,751 qps6.12 msCompound index11,082 qps6.49 msSort + limit 1023,008 qps2.88 msFull scan (unindexed)1,958 qps50.02 ms<br>See the full benchmark results and deployment setup for the complete table.

Get started<br>Section titled “Get started”<br>Spin up a local cluster (one FoundationDB node, one Kronotop primary, and one<br>standby) with Docker Compose.<br>Terminal windowcurl -O https://kronotop.com/kronotop-quickstart.yaml

docker compose -f kronotop-quickstart.yaml up

Full quickstart → Connect with kronotop-cli, create a bucket, then insert and query your first document.<br>Community<br>Section titled “Community”<br>Kronotop is developed in the open.<br>Discord Ask questions, share feedback, and follow development.<br>GitHub Issues Report bugs and propose ideas.

FoundationDB is a trademark of Apple Inc. Kronotop is an independent project and is<br>not affiliated with, endorsed by, or sponsored by Apple Inc.

kronotop foundationdb namespace commit section titled

Related Articles