Skip to content

Strata

Strata is a content-addressed computation graph with an interactive notebook UI.

Every cell output is a versioned artifact keyed by its provenance: source, inputs, and environment. Strata reads each cell's AST to build the dependency graph automatically, so re-running a notebook is mostly a series of cache hits. Prompt cells make AI calls first-class DAG nodes, cached by template, inputs, and model config. The # @worker gpu-fly annotation dispatches a cell to a remote GPU. The whole notebook is plain .py files plus a manifest, so commits are git-diffable and there are no JSON blobs or execution metadata bleeding into the history.


Strata Notebook

The interactive notebook surface: Python, prompt, SQL, and loop cells, each producing artifacts that flow through an auto-built DAG.

Highlights:

  • content-addressed: every cell output is keyed by source + inputs + environment — identical work hits the cache forever
  • reactive: edit a cell, the cascade re-runs only the downstream cells that depend on it
  • dag-from-ast: Strata reads each cell's AST to wire upstream/downstream — no decorators, no manual edges
  • dag-view: the dependency graph renders alongside the cells — double-click any node to jump to its source
  • git-friendly: notebooks are plain .py files plus a TOML manifest — readable diffs, no JSON blobs
  • prompt cells: LLM calls are first-class DAG nodes, {{ variable }} interpolation from upstream cells, cached by template + inputs + model config
  • SQL cells: named connections, bind-parameter templating, drivers for DuckDB / SQLite / Postgres / Snowflake / BigQuery
  • loop cells: # @loop max_iter=N carry=state iterates a cell with explicit carry between steps — each iteration is its own artifact
  • distributed: # @worker gpu-fly dispatches a single cell to a remote box — bring your own compute
  • mounts: # @mount data s3://bucket/prefix ro makes any S3 / GCS / Azure prefix a local pathlib.Path
  • isolated envs: every notebook gets its own uv-managed .venv/, locked and reproducible
  • auto-install: missing import in a cell? one click adds the package via uv and re-runs
  • headless: strata run ./my-notebook for CI and scheduled execution — same DAG, same cache

Notebook Quickstart


Use Strata as a library

Strata's HTTP API exposes the materialization layer directly, driveable from Python via StrataClient. Useful for direct table scans, custom transforms, and headless workflows; the notebook executor is a separate pipeline that writes to the same artifact store. The client talks to a running Strata server.

Library Quickstart


Quick Start

docker compose up -d --build

Then open http://localhost:8765.

uv sync
cd frontend && npm ci && npm run build && cd ..
uv run strata-notebook

Then open http://localhost:8765.

See Installation for full details.

Status

Both surfaces (Notebook and Core) are functional and shipped from PyPI. Strata is still pre-1.0, so the API may change between 0.x minors; pin to a minor if you need stability.