Zero-disk architecture
Persist data directly to object storage. Keep 99.999999999% durability and cost profile of S3-class storage without local disks or cross-AZ storage traffic.
ref /docs/design/overview/SlateDB is an OSS embedded key-value database and LSM-engine built on object storage.
SlateDB brings the durability, consistency, and economics of object storage to your online systems without sacrificing performance or paying per-request API costs.
Persist data directly to object storage. Keep 99.999999999% durability and cost profile of S3-class storage without local disks or cross-AZ storage traffic.
ref /docs/design/overview/SlateDB ensures a single writer through a formally verified manifest fencing protocol but supports multiple readers for read-side scaling. Compaction can run embedded or as a separate process to enforce separation of concerns.
ref /docs/design/readers/Transactions, snapshots, and optimistic concurrency control mechanisms ensure that SlateDB is suitable for the most demanding transactional workloads.
ref /docs/design/consistency/Writes can trade between API request cost and durability latency while reads can leverage hybrid memory/disk caching to avoid cold latency penalties.
ref /docs/operations/tuning/Checkpointing is a zero-copy operation and functions as the basis for a clone or fork. Rescaling is also zero-copy, enabling O(1) splits and merges of Slates.
$ cargo add slatedb tokio --features tokio/macros,tokio/rt-multi-thread
use slatedb::Db;
use slatedb::object_store::memory::InMemory;
let store = std::sync::Arc::new(InMemory::new());
let db = Db::builder("demo", store).build().await?;
db.put(b"hello", b"world").await?;
let value = db.get(b"hello").await?; $ go get slatedb.io/slatedb-go
store, _ := slatedb.ObjectStoreResolve("memory:///")
builder := slatedb.NewDbBuilder("demo", store)
db, _ := builder.Build()
db.Put([]byte("hello"), []byte("world"))
value, _ := db.Get([]byte("hello")) $ implementation 'io.slatedb:slatedb-uniffi'
ObjectStore store = ObjectStore.resolve("memory:///");
DbBuilder builder = new DbBuilder("demo", store);
Db db = builder.build().get();
db.put("hello".getBytes(), "world".getBytes()).get();
byte[] value = db.get("hello".getBytes()).get(); $ npm install @slatedb/uniffi
const store = ObjectStore.resolve("memory:///");
const builder = new DbBuilder("demo", store);
const db = await builder.build();
await db.put(Buffer.from("hello"), Buffer.from("world"));
const value = await db.get(Buffer.from("hello")); $ pip install slatedb
store = ObjectStore.resolve("memory:///")
builder = DbBuilder("demo", store)
db = await builder.build()
await db.put(b"hello", b"world")
value = await db.get(b"hello") The full reference covers architecture, operations, tutorials, and the RFC archive.