Retype a column, deprecate one, move consumers to a replacement — RippleX reads DataHub's column-level lineage to find every downstream consumer (dbt models, dashboards, ML features), then executes a real expand → migrate → verify → contract migration: real Git PRs, real parallel-run verification against the warehouse, a real deprecation and playbook written back into the catalog.
Deterministic code performs every real mutation. The LLM proposes — it never executes a write directly.
Real numbers from RippleX's own state DB, computed live on every page load.
DataHub on a single GCE VM (not GKE — a deliberate cost call, see NOTES.md), Cloud Run for the stateless service, Cloud SQL for state.