@polyweave/durability (1.0.1)
Published 2026-07-10 17:36:37 +00:00 by Dvorak
Installation
@polyweave:registry=https://hub.kl1.tenere.ai/api/packages/Polyweave/npm/npm install @polyweave/durability@1.0.1"@polyweave/durability": "1.0.1"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 stores —
MemoryWALStore,FileWALStore(Maplet-based, segmented), and the legacy JSONLFileWALStore - Checkpoint / recovery managers —
CheckpointManager,RecoveryManager - Durable pipelines & routers —
createDurablePipeline,createDurableRouter,createDurableSystem,createDurableConversation - Snapshot helpers (formerly
@polyweave/persistence) —createTreeSnapshotClient,createFactSnapshotClient,normalizeTreeCheckpoint,restoreStoreFromCheckpoint,checkpointTree,checkpointFacts,rebuildTextIndexFromTree - WAL entry types & serializers —
WALEntryType,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