TierDB is a fast, transparent and cost-effective way to tier Postgres data into Apache Iceberg. If Postgres sits at the heart of your stack and its largest tables keep growing (events, telemetry, orders, time series), TierDB keeps the recent rows hot in Postgres, moves history into the lake, and your application keeps running plain SQL against one table as if nothing moved.
Status: beta. No stable release yet, interfaces can still change. See production deployment before running it anywhere that matters.
Tables run in two modes: tiered, where Postgres keeps only the recent partitions and history lives in Iceberg, and mirrored, where Postgres keeps everything while CDC trails every change into the lake. With the postgres extension, plain SQL reads and writes both tiers in place, and where it cannot be (managed Postgres like RDS), tiering still runs and connectors cover the cross-tier side.
It is built on guarantees rather than best effort: writes stay ACID wherever the row lives, every read is one point-in-time view across both tiers, and failure degrades to lag, never to a wrong answer.
tierdb-explainer.mp4
TierDB owns only the seam between the tiers, and the protocol is public. Choosing a mode walks the decision, and the contract states exactly what each mode supports.
Run the full loop locally with Docker:
git clone --recurse-submodules https://github.com/Modak-Labs/tierdb && cd tierdb
make -C example up
./example/scenarios/run.shThat brings up Postgres with the extension, RustFS as the Iceberg warehouse, and the worker, then walks through tiering, corrections, mirroring, and lifecycle end to end. The console lives at http://localhost:9090.
tierdb-demo-compressed.mp4
For the guided version, start with the quickstart. For pointing the worker at your own Postgres and object store, see production deployment.
Full docs at modak-labs.github.io/tierdb:
- Concepts: table modes, tier key, cut-line, pinned snapshot, delta
- Choosing a mode: which mode fits your workload
- The contract: the mode-by-mode matrix of what you can read, write, and correct
- Working with tables: registering, reading, corrections
- Ingestion: bulk ingestion and Stream Load
- Operations: production deployment, AWS, day-2 operations, console
- Reference: SQL API, CLI, configuration, catalog schema, metrics
- Architecture: how the extension, the worker, and the catalog cooperate
The explainer and demo videos, and the toolchain that builds them, live in Modak-Labs/tierdb-media.
Bug reports and feature requests go through issues, questions and ideas through discussions. See CONTRIBUTING.md for the local setup and how to send changes.
MIT. See LICENSE.