P
Persist

API Reference

Complete API reference for records, events, blobs, and kv store methods.

createStore

function createStore(name: string, options: StoreOptions): Promise<Store>

Creates and initializes a store. The name is used as a namespace for data isolation. Options include adapter, adapter-specific config, and optional encryption.

Records API

store.records.put(key, value)

Write or overwrite a record. Returns the written record with metadata.

const record = await store.records.put("user:1", { name: "Alice" });
// { key: "user:1", value: { name: "Alice" }, version: 1, updatedAt: Date }

store.records.get(key)

Read a record by key. Throws NotFoundError if the key does not exist.

const record = await store.records.get("user:1");

store.records.delete(key)

Delete a record. Creates a tombstone for sync propagation.

store.records.list(options?)

List records with optional filtering.

const records = await store.records.list({
  prefix: "user:",       // key prefix filter
  limit: 100,            // max results
  offset: 0,             // pagination offset
  order: "asc",          // "asc" or "desc" by key
  filter: (r) => r.value.active, // in-memory filter
});

store.records.putMany(entries)

Batch write records in a single transaction.

store.records.conflicts()

List records with unresolved sync conflicts.

store.records.resolve(key, value)

Resolve a conflict by choosing or merging a value.

Events API

store.events.append(stream, payload)

Append an immutable event to a stream.

await store.events.append("deploy", { version: "2.4.1" });

store.events.list(options?)

Read events from a stream.

const events = await store.events.list({
  stream: "deploy",
  since: new Date("2026-01-01"),
  until: new Date("2026-06-01"),
  limit: 50,
  order: "desc",
});

store.events.count(stream?)

Return the total number of events, optionally filtered by stream name.

Blobs API

store.blobs.put(key, data)

Write a blob from a Buffer, Uint8Array, or ReadableStream.

store.blobs.get(key)

Read a blob as a Buffer.

store.blobs.getStream(key)

Read a blob as a ReadableStream.

store.blobs.delete(key)

Delete a blob.

store.blobs.list(options?)

List blobs with optional prefix filter.

store.blobs.presign(key, options)

Generate a presigned URL (S3 adapter only).

KV API

store.kv.set(key, value)

Set a string value.

store.kv.get(key)

Get a string value. Returns null if not found.

store.kv.delete(key)

Delete a key.

store.kv.list(options?)

List all keys with optional prefix filter.