Polyweave

@polyweave/durability (1.0.0)

Published 2026-07-10 15:14:57 +00:00 by Dvorak

Installation

@polyweave:registry=https://hub.kl1.tenere.ai/api/packages/Polyweave/npm/
npm install @polyweave/durability@1.0.0
"@polyweave/durability": "1.0.0"

About this package

@polyweave/durability

WAL-based crash recovery, segmented SSTable-style stores, checkpoint/recovery managers, durable pipelines and routers for Polyweave.

This package consolidates what was previously split across @polyweave/core/durability and @polyweave/persistence:

  • WAL storesMemoryWALStore, FileWALStore (Maplet-based, segmented), and the legacy JSONL FileWALStore
  • Checkpoint / recovery managersCheckpointManager, RecoveryManager
  • Durable pipelines & routerscreateDurablePipeline, createDurableRouter, createDurableSystem, createDurableConversation
  • Snapshot helpers (formerly @polyweave/persistence) — createTreeSnapshotClient, createFactSnapshotClient, normalizeTreeCheckpoint, restoreStoreFromCheckpoint, checkpointTree, checkpointFacts, rebuildTextIndexFromTree
  • WAL entry types & serializersWALEntryType, createFrameEnqueuedEntry, etc.

Synopsis

import { FileWALStore, createDurablePipeline } from '@polyweave/durability';

const walStore = new FileWALStore({
  dataDir: '/var/lib/polyweave/wal',
  compaction: { autoCompaction: true, maxSegmentSize: 1 << 20 }
});

const pipeline = createDurablePipeline({
  inner: myAdapter,
  walStore,
  wrapperId: 'chat-1'
});

await pipeline.sink.write({ type: 'TEXT', content: { text: 'hello' } });

Snapshot helpers

import {
  createTreeSnapshotClient,
  checkpointTree,
  restoreStoreFromCheckpoint,
  normalizeTreeCheckpoint
} from '@polyweave/durability';

const snapshotClient = createTreeSnapshotClient(treeStore, 'full');

checkpointTree(walStore, snapshotClient, { wrapperId: 'tree', wrapperType: 'treeStore' }, (err) => {
  if (err) throw err;
});

restoreStoreFromCheckpoint({
  walStore,
  store: restoredStore,
  wrapperId: 'tree',
  wrapperType: 'treeStore',
  normalizeState: normalizeTreeCheckpoint
});

Install

npm install @polyweave/durability

Tests

npm run test:unit       # fast unit tests
npm run test:property   # property-based tests
npm test                # alias for test:unit

Requirements

Node.js 18 or later. ESM only. Peer-depends on @polyweave/core.

License

MIT

Dependencies

Development Dependencies

ID Version
@rigor/core *
fast-check ^3.23.2

Peer Dependencies

ID Version
@polyweave/core ^1.0.0

Keywords

polyweave wal durability crash-recovery checkpoint maplet sstable
Details
npm
2026-07-10 15:14:57 +00:00
4
John Dvorak
SEE LICENSE IN LICENSE
30 KiB
Assets (1)
Versions (6) View all
1.0.9 2026-07-11
1.0.6 2026-07-10
1.0.5 2026-07-10
1.0.2 2026-07-10
1.0.1 2026-07-10