LoraDB v0.4.0: WAL, checkpoints, and crash recovery
LoraDB v0.4.0 adds a write-ahead log.
The engine is still in-memory and local-first. What changes in this release is the durability boundary: on the surfaces that own a filesystem and process lifecycle, committed writes no longer have to live entirely in RAM between two manual snapshots.
The shortest mental model:
createDatabase()in Node is still a fresh in-memory graph.createDatabase("application", { databaseDir: "./data" })opens a persistent archive-backed graph at./data/application.loradb.Database.create("app", {"database_dir": "./data"}),lora.New("app", lora.Options{DatabaseDir: "./data"}), andLoraRuby::Database.create("app", {"database_dir": "./data"})do the same thing on Python, Go, and Ruby.lora-server --wal-dir /var/lib/lora/walturns the HTTP server into a WAL-backed process.- Rust gets the full open, recover, checkpoint, and sync-mode surface.
Snapshots do not go away. They stay the portable file you can back up, ship, and restore elsewhere. v0.4.0 makes them stronger by giving them something to checkpoint against.