Skip to content

Operations

How to run a durable Eelgrass database directory: on-disk layout, health signals, compaction, and change feeds. Capability honesty lives on Status.

Which page to read

TopicPageWhen
What lives under db_dirDatabase layoutOpening, backing up, or recreating a DB
Trust signals and rewriteHealth and compactCorruption, WAL lag, eelgrass compact, /ops
Live change feedCDCPer-tenant tails, LSN resume, Studio live mode

Wire formats and every route: HTTP API. Commands: CLI. Studio UI: Studio.

Crash expectations

On open the engine reads Meta (superblock + catalog roots) and replays the WAL after the last checkpoint. Committed work that reached a durable WAL sync is re-applied. An atomic that crashed after Begin / Write but before Commit is discarded.

Torn page slots fail checksum and are not treated as good data. See Health and compact. Details of atomic commit vs crash points: Transactions.

When to recreate the DB directory

Recreate (delete or move db_dir, then open a fresh one) when:

  • Open fails with an incompatible / legacy Meta error (no in-place migrate).
  • You intentionally want a clean engine of record after a bad experiment.
  • Health reports corruption and you have no better recovery path than reseeding.

Product export/import packaging is not shipped yet. See Status. Moving the whole directory as a unit is the durable unit of record today.

Pre-alpha. Local-first. Stdlib-only Rust engine. Tenant concerns shifted left into the database.