Phase 1 delivers the complete durability and storage layer:
- WAL with crash recovery: Append-only journal with BLAKE3 checksums,
fsync guarantees, and proper seek-to-EOF on reopen
- Storage engine: sled-backed KVStore with scan_prefix for range queries
- Content-addressed storage: H:{hash}, V:{hash}, E:{hash} key patterns
- Ingestor: Background worker tailing WAL, writing to KV with 8-byte
aligned record headers for rkyv zero-copy deserialization
- Comprehensive tests: 31 tests covering crash recovery, round-trips,
and multi-cycle durability
New crates: stemedb-wal, stemedb-storage, stemedb-ingest
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
24 lines
717 B
Plaintext
24 lines
717 B
Plaintext
sequenceDiagram
|
|
%% Time Travel Debugging: What Did We Believe Then?
|
|
|
|
participant H as Human Supervisor
|
|
participant E as Episteme
|
|
|
|
H->>E: What's the current JWT algorithm?
|
|
Note right of E: Current state shows RS256 (post-fix).
|
|
|
|
E-->>H: RS256 (current)
|
|
Note right of H: This is useless for debugging. We need history.
|
|
|
|
H->>E: What did we believe at 9pm?
|
|
Note right of E: Time-travel query.
|
|
|
|
E-->>H: ES256 (at 9pm)
|
|
Note right of H: ⚠️ At 9pm, the system believed ES256 was correct.
|
|
|
|
H->>E: What changed in last 24h?
|
|
Note right of E: Diff view for change analysis.
|
|
|
|
E-->>H: Diff result
|
|
Note right of H: ✓ Clear view: RFC added at 2:30pm caused the issue.
|