[Design] Cube.js is a parallel/bypassed path, not the single semantic layer
Open-source Excel-native EPM and consolidation for SAP & Dynamics
Brought to you by:
konsolid-at
Originally created by: pyy3
Type: design / architecture clarification
The README architecture diagram presents Cube.js as the semantic layer between dbt and Frappe. In practice Cube is thin and partly bypassed:
cube/cube.js is effectively { schemaPath: '/cube/schema' }; schemas are generated by scripts/generate_cube_schemas.py.konsol/api.py / konsol/clickhouse.py) queries ClickHouse directly, not through Cube.So there are two parallel read paths into ClickHouse (Cube SQL API and the Frappe direct path), and Cube is not the single semantic authority the diagram implies.
Metric definitions can diverge between the Cube schema and the hand-written SQL in the Frappe API, producing inconsistent numbers depending on which path a consumer uses. For an EPM product, "the same measure returns two values" is a credibility problem.
Originally posted by: pyy3
Fixed in [#34] (merged to
main).Related
Tickets:
#34Ticket changed by: pyy3