Background
v2.engine.Graph is a god class – early tech debt.
The V3 API path currently runs on V2Backed* adapters over V2 internals – a transitional shape.
This issue replaces the query path with a V3-native engine. Mutation is out of scope (do it later).
Task
Done When
- V3 query controllers serve traffic through
Engine instead of V2BackedTableBinding.
Graph is unchanged.
- Each phase lands as one or more independently shippable PRs.
Notes
- "Catalog" = the registry of Database / Table / Alias definitions (Spark / Trino / Iceberg / Glue use the same term). The metastore stays as the
Actionbase Table backing store; the catalog is what lives in memory and is loaded from the metastore.
- Reuse
core.edge.mapper.*, core.edge.payload.*, core.metadata.common.* — these are already V3.
Background
v2.engine.Graphis a god class – early tech debt.The V3 API path currently runs on
V2Backed*adapters over V2 internals – a transitional shape.This issue replaces the query path with a V3-native engine. Mutation is out of scope (do it later).
Task
EngineSpring bean with a catalog reload loopEngineperiodically loads databases / tables / aliases from the metastore via aCatalogLoaderEngineproducesTableBindinginstances;QueryServiceuses itDone When
Engineinstead ofV2BackedTableBinding.Graphis unchanged.Notes
Actionbase Tablebacking store; the catalog is what lives in memory and is loaded from the metastore.core.edge.mapper.*,core.edge.payload.*,core.metadata.common.*— these are already V3.