Skip to content
Three stacked strata forming a ridge — the moraine markThree stacked strata forming a ridge — the moraine mark

moraine

A DuckLake catalog that lives in your bucket. SlateDB-backed, serverless, nothing to operate.
ATTACH 'ducklake:moraine:s3://bucket/prefix' AS lake
  (DATA_PATH 's3://bucket/prefix-data/',
   META_DATA_PATH 's3://bucket/prefix-data/', READ_WRITE);

CREATE TABLE lake.events (id BIGINT, payload VARCHAR);
INSERT INTO lake.events VALUES (1, 'hello, bucket');

Nothing to operate

No catalog endpoint to deploy, monitor, or upgrade. A deployment is a bucket and credentials.

Durability for free

Catalog durability is object-store durability. No backup schedule, no WAL shipping — the only way to lose the catalog is to lose the bucket itself.

The bucket is the whole lake

Copying the bucket copies data and catalog together. Environments, migration, and disaster recovery become object-storage operations.

Scale to zero, embed anywhere

An idle lake costs storage, not a 24/7 instance. The core is a plain Rust library any tokio host can commit against directly.

The trade-off is commit latency: a commit is durable once an object-store PUT lands (~5–10 ms on S3 Express One Zone, ~50–100 ms on S3 Standard). For workloads that write Parquet for seconds before committing, that is noise. The full pitch →