stepping Docs

Choose declaratively describing your business logic. Choose the warm safety of Postgres transactions. Choose type safety. Choose automagically efficient updates using the power of incremental view maintenance. Choose Python. Choose replacing the error-prone, hard-to-reason-about tangle of application code that exists as a poorly defined cache over your data. Choose stepping.

Installation →
Examples →
Motivation →


The magic of Incremental View Maintenance lets you describe outputs as 𝑓(inputs) without error-prone update logic.


Automatically recomputes data only where necessary. Caches output data with indexes for high read throughput.

Well typed

Uses the latest Python/mypy typing features to aid development and avoid bugs.


Fits in right next to your existing software - no need for rewrites.


Uses Postgres to store data, allowing use of existing tooling for backups, monitoring etc.


By default, uses ACID transactions per new piece of input data.