Self-hosted Convex
Convex as the operational backend for the dashboard — not the analytical warehouse.
Self-hosted Convex is the operational backend of the web application — the current state the dashboard reads in real time. It is deliberately not the analytical database for tick-level market history.
What Convex owns
The operational entities the UI subscribes to:
- tokens
- opportunities
- signal & score snapshots
- agent reports
- strategies & versions
- experiments
- trades
- positions
- orders
- human reviews
- risk events
- system alerts
- configuration versions
How Python talks to it
The Python services write to Convex through HTTP actions, authenticated endpoints, internal service requests and scheduled synchronization workers — Convex stays the reactive layer, the quant and agent work stays in Python.
Authorize first — Convex has no row-level security
Every Convex function authorizes the caller and runs a per-resource check before touching data. Anything not meant for the client is
internal*, and every argument is validated. The store is kept distinct from the SQLite memory and the Parquet/DuckDB lake.Not the warehouse
High-frequency analytical data would be too voluminous and expensive to query here. Convex stores application-facing records; Parquet/DuckDB store research history; SQLite stores agent memory. See the full data model for the table-by-table breakdown.