stemedb/ai-lookup/services/storage.md
jordan a776744889 Initial project setup with Claude Code monorepo structure
- Rust workspace with stemedb-core crate
- Full .claude/ configuration (agents, skills, commands, guides)
- ai-lookup/ for token-efficient fact storage
- Quality gates: clippy, fmt, jscpd duplication detection
- Pre-commit hook with 5-phase quality checks
- CLAUDE.md router and CODING_GUIDELINES.md standards

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 10:56:26 -07:00

1.2 KiB

Storage

Last Updated: 2025-01-31 Confidence: High

Summary

Episteme uses a Log-Structured, Content-Addressed storage model. Writes append to WAL, then index asynchronously. Reads query indexes and apply Lenses.

Key Facts:

  • Append-only (never mutate)
  • WAL for durability (fsync on write)
  • KV store for indexes (sled MVP, trait-abstracted)
  • Content-addressed by BLAKE3 hash

File Pointer: crates/stemedb-core/src/store.rs (planned)

KV Layout

Key Pattern Value Purpose
H:{Hash} Assertion (serialized) Main content store
S:{Subject} Vec<Hash> Subject index
SP:{Subject}:{Predicate} Vec<Hash> Triple index
A:{AgentId} ReputationScore TrustRank storage

Write Path

1. Agent submits signed Assertion
2. Validate signature
3. Append to WAL (fsync)
4. Return 202 Accepted with Hash
5. Background: tail WAL -> update indexes

Read Path

1. Query: GET(Subject, Predicate, Lens)
2. Lookup: SP:{Subject}:{Predicate} -> [Hash...]
3. Hydrate: Load assertions from H:{Hash}
4. Resolve: Apply Lens
5. Return: Deterministic answer