tickvault
Real system, verified against real data. The live demo above runs against a bounded public export — the full repo is still private.
Problem
A market data warehouse built on a working ingest pipeline (SQL Server), proving the data is trustworthy: correct under messy input, corrections, and reruns, with full lineage from source to backtest result. Covers EUR/USD and GBP/USD minute bars, 2015–2026 (~7.9M bars each).
Architecture
Medallion pipeline (Dagster + dbt + DuckDB). Bronze: immutable, run-addressed Parquet files per symbol/day with an active/superseded manifest. Silver (dbt): reprocesses through that manifest so reruns never double-count; corrections are versioned, not overwritten. Gold: the stable published table. A monitoring layer flags gaps/anomalies automatically. Served via FastAPI and a Streamlit dashboard, with a live-feed mode.
Key decisions & tradeoffs
- Public demo runs DuckDB-WASM against a real, bounded data export — real SQL, zero hosting cost, at the cost of showing only a slice.
- Corrections are tracked via an active/superseded manifest, never an overwrite — every correction is a provable, queryable event.
- Dagster CLI is blocked from writing to the real database after it silently overwrote backfilled data three times; backfill/live-feed scripts are now the only supported path for real data.
What I learned
- Driving a real browser caught bugs code review alone missed.
- A passing CI badge isn't proof a check ever ran — found a CI bug that had silently broken the idempotency check since the first commit.