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
.pyfiles 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=stateiterates a cell with explicit carry between steps — each iteration is its own artifact - distributed:
# @worker gpu-flydispatches a single cell to a remote box — bring your own compute - mounts:
# @mount data s3://bucket/prefix romakes any S3 / GCS / Azure prefix a localpathlib.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-notebookfor CI and scheduled execution — same DAG, same cache
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.
Quick Start¶
Then open http://localhost:8765.
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.