Skip to content

What is Eelden?

Eelden is a multi-tenant-by-default database engine and query language, built clean-room in Rust.

Most databases were designed single-tenant. Multi-tenancy got bolted on later with tenant_id columns or fleets of orchestrated databases. Eelden inverts that: the tenant is a first-class primitive of storage, language, and type system. Isolation is the zero-config case. Cross-tenant anything is the explicit, audited exception.

That inversion is the shift-left bet: isolation, audit history, lazy migration, forks, and change feeds leave the business layer and become engine work. Builder summary: Shift left. Business pitch: Business & sales.

Founding bets

  1. Tenant = consistency boundary. Transactions, snapshots, forks, and residency are tenant-scoped engine operations — not app-layer orchestration. No cross-tenant transactions. Cross-tenant coordination is CDC + sagas.
  2. Storage stores values. It does not enforce types or foreign keys at write time. Meaning lives in the language layer.
  3. Types are a language-layer construct. Schemas are code: diffable, versioned, CI-checked. Drift surfaces as unknown, never silent coercion.
  4. No hand-written migration files. Edit the schema; fingerprints drive lazy apply-on-touch. Destructive changes require @breaking.
  5. LSP-first language. Pipe-based queries where every stage has a known shape. Autocomplete and inline errors are design inputs.
  6. Versioned immutable pages. Copy-on-write forks, named snapshots, and lazy migration fall out of one storage decision.

Surfaces that ship today

SurfaceRole
CLI (eelden)Local DB: run, serve, studio, compact, typecheck helpers
StudioLocal web UI over eelden serve
Playground (?local=1 / play.eelden.dev)In-tab wasm engine (OPFS or memory)
@eelden/clientMoney types, tagged template, named-query codegen

Honest maturity

Eelden is pre-alpha. Status is the capability inventory. Everything else on this site describes what the code does now, with limits called out inline.

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