VisionWrightsVisionWrightsTechnical Appendix

Composable Analytics Platform · Technical Appendix

The platform, in engineering detail.

The component inventory, selection criteria, deployment models, and migration method behind the Composable Analytics Platform — written to be checked. Every component links to its own site, documentation, and source repository.

01 · Architecture

One governed path from source systems to every consumer.

The platform is functioning software VisionWrights licenses and operates: established open-source components assembled into one system, with a small set of custom surfaces delivered as source code. It rebuilds a client's full BI environment — pipelines, semantic definitions, dashboards, and product-embedded analytics — at production scale, with every migrated number reconciled against the incumbent platform's output. The reconciliation checks run as tests inside the pipeline itself, on every build (§5).

Source extractsclient systems / incumbent platform dbttransformations & tests, SQL in git WarehousePostgres / Redshift / client's choice Cubesemantic layer, RLS, governed measures Metabase · Superset · Lightdashinterchangeable BI tools
Dagsterorchestration, run history Operations portallineage · tests · freshness · SQL per step · Embeddable widgetsclient product surfaces, RLS-scoped · Natural-language buildergoverned measures only

Three properties drive every design choice, and each is verifiable in a technical review:

READABLE
Every transformation is readable

Each pipeline step is plain SQL in a dbt model, in a git repository the client's team can open. The operations portal shows the SQL, inputs, outputs, tests, and last-run status of every step — the same view an operator uses in production.

PROVEN
Every number is proven, and stays proven

Migrated dashboards are reconciled against the incumbent platform's output using dbt's built-in test framework, applied as best practice from VisionWrights' implementation experience. Each reconciliation is a test that re-runs on every rebuild — a change that breaks reconciliation blocks promotion before it reaches a user.

REPLACEABLE
Every layer is replaceable

The BI tools are interchangeable because they all read the same semantic layer; the semantic layer and pipeline are standard open-source components that run wherever the client chooses (§3). The same governed layer serves AI applications — the natural-language builder composes queries from named measures only.

02 · Components & selection

Every component earned its place against the same nine checks.

Nine checks gate inclusion; each is verifiable by an outside engineer, and each has a named failure. The criteria gate inclusion without uniquely determining the stack — other components also pass (Apache Airflow, for example, passes the license and governance checks); among passing candidates, selection is an engineering decision.

CriterionThe ruleWhat would disqualify a component
1 · Readable open licenseAn OSI-approved license, verifiable in the public repositorySource-available or proprietary licenses
2 · Continuity beyond the vendorFoundation governance, or a license that lets the community continue the project if the vendor changes courseA license the vendor can close later. This has happened: Terraform (2023), Redis (2024), and Elastic (2021) all relicensed, and the projects survived only because their earlier licenses allowed community forks (OpenTofu, Valkey, OpenSearch)
3 · Named production evidenceNamed companies with first-party accounts of running it at scale (see the usage table below)Marketing logo walls and self-registered user lists with no first-party account behind them
4 · Runs on client-owned infrastructureFully self-hostable from public artifactsCloud-only products — Domo (per its own platform pages) and Looker core ("hosted by Google… not available for customer-hosted environments" — Google's docs)
5 · Engine & warehouse portabilityAdapters or connectors for multiple engines, per the official docsA hard coupling to a single warehouse
6 · Replaceable through standard interfacesSpeaks SQL, the Postgres wire protocol, open table formats, and git-versioned textContent locked in formats only the vendor's tools can read (LookML models, Tableau extracts)
7 · Server-enforced multi-tenant securityTokenized embedding with row-level restriction enforced on the serverFiltering that happens only in the browser, or static embeds with no row security
8 · Operable with standard toolingRuns in containers with documented upgrade pathsSystems operable only as a vendor appliance, outside standard tooling
9 · Staffable from public knowledgeDeep public documentation and a large practitioner base (industry surveys, first-party community data)Skills learnable only inside one vendor's ecosystem

The component inventory

Each row states the component's role, origin, license, and continuity path — the layer-by-layer answer to how the platform behaves over a long horizon. The custom components (widget framework, operations portal, natural-language builder) are VisionWrights' proprietary platform product — built to serve many clients and licensed per client. The embeddable widget is delivered as source into the client's repository; the operations portal and natural-language builder are operated as part of the platform, and their architecture and behavior are walked through with the client's engineers on request. Each is a thin layer over documented APIs.

ComponentRoleOrigin & maturityLicenseContinuity path
OSSdbt Coregetdbt.com·Docs·GitHub·Redshift adapter·TestsAll transformations (SQL models + tests)2016; the de-facto industry standard; tens of thousands of production deployments. dbt Labs merged with Fivetran in June 2026; dbt Core remains Apache-2.0, and the new Fusion runtime was released under the same licenseApache 2.0The client's SQL, in the client's repo; runs unchanged with native support for Redshift, Snowflake, BigQuery, and Postgres
OSSDagsterdagster.io·Docs·GitHub·AWS deploymentOrchestration, run history, alerting2018; widely deployed; commercial company behind itApache 2.0Keeps running as-is, or swaps for Airflow/MWAA — dbt is orchestrator-agnostic
OSSPostgreSQLpostgresql.org·LicenseWarehouse in the current build1996; the longest-lived component in the stackPostgreSQL LicenseCommunity-governed since 1996 — or replaced by the client's existing warehouse (§3)
OSSApache Parquet / Icebergiceberg.apache.org·Docs·GitHubOpen-format storage path — an alternative to (or stage alongside) the client's warehouseIceberg created at Netflix (2017), donated to the Apache Software Foundation; Parquet is the standard open columnar formatApache 2.0Foundation-governed; data stays in open files any engine can read
OSSCubecube.dev·Docs·GitHub·Row-level security·Data modelingSemantic layer: governed measure definitions, row-level security, caching, AI-ready access2019; commercial company behind it; large OSS deployment baseApache 2.0 (core)Definitions are YAML/SQL in the client's repo; measures portable to dbt metrics or another semantic layer
OSSMetabasemetabase.com·GitHub·Licensing (AGPL note)·EmbeddingBI option A — analyst-facing dashboards2015; very large deployment baseAGPL v3 (OSS edition) — see the licensing noteKeeps running; dashboards exportable
OSSApache Supersetsuperset.apache.org·Docs·GitHub·Embedded dashboardsBI option B — analyst-facing + embeddable (Apache-licensed)2015; Apache Software Foundation projectApache 2.0Foundation-governed; keeps running
OSSLightdashlightdash.com·Docs·GitHubBI option C — dbt-native exploration2021; younger than options A/B; growing baseMITKeeps running; a narrow, swappable role by design
OSSdltdlthub.com·Docs·GitHub·Redshift destinationDirect source ingestion (extract-load from client systems)2022; young, with a deliberately focused scope (extract-load)Apache 2.0Replaceable by Glue, Fivetran, or equivalents — loading is the most commoditized layer
CustomEmbeddable widgetSource code delivered to the client — repository access for review on requestProduct-embedded dashboards, RLS-scoped; built to be drop-in compatible with existing embed integration patternsBuilt by VisionWrights, 2026. Small, plain React/JS codebase over documented APIs.VisionWrights proprietary; source delivered under license for the client's use, modification, and continued operationThe source lives in the client's repo; it reads standard semantic-layer APIs; sized for an in-house engineer to maintain
CustomOperations portalVisionWrights platform product — architecture and behavior walked through with the client's engineers on requestLineage, per-step SQL, tests, freshness (operator + stakeholder visibility)Built by VisionWrights, 2026. Renders live pipeline metadata (dbt manifest, Dagster API) — holds no data or logic of its own.VisionWrights proprietary, operated as part of the platformA convenience layer over the pipeline's own metadata; the same facts are visible in Dagster and dbt docs directly
CustomNatural-language builderVisionWrights platform product — architecture and behavior walked through with the client's engineers on requestAd-hoc charts from plain English, restricted to governed measuresBuilt by VisionWrights, 2026. Composes queries only from the semantic layer's named measures; shows the generated queries; when asked for data that has not been modeled and approved, it says so and escalates rather than improvising a number.VisionWrights proprietary, operated as part of the platformAn optional layer; removing it removes no data capability

Usage at scale — first-party sources

Each selection below is one that larger engineering organizations reached independently; every source is first-party (the company's own case study, engineering blog, or the project's records) and was link-verified in July 2026.

ComponentRun at scale bySource
dbt CoreSiemens (enterprise data mesh), JetBlue, Nasdaq, HubSpotdbt Labs case studies
DagsterUS Foods — 99.996% uptime behind a $24B operationDagster case study
CubeAlcon and Brex — both building AI analysts grounded in the semantic layer, the same pattern as this platform's conversational applicationsCube case studies
Apache SupersetCreated at Airbnb; adopted by Dropbox after a published evaluationDropbox engineering blog
Metabase80,000+ organizations (first-party install-base figure, stated as such); the named evidence is N26, Europe's first mobile bankMetabase case study
Apache Iceberg / ParquetCreated at Netflix; Adobe migrated 1PB+ onto it; LinkedIn runs it via OpenHouseAdobe Tech Blog
PostgreSQLThe most-used (55.6%) and most-admired (66%) database among professional developersStack Overflow Developer Survey 2025
dlt3,000+ companies in production, including PostHog and Flatiron Health — install-base evidence, stated as suchdltHub

The architecture is as vetted as the parts: the layered ingest → transform → warehouse → semantic-layer pattern is the blueprint documented in a16z's Emerging Architectures for Modern Data Infrastructure; the open-format storage path rests on the peer-reviewed Lakehouse paper (CIDR 2021); and GitLab operates a comparable dbt-based stack entirely in public in its data-team handbook. A full source list, with source-strength grading, is available on request.

Licensing note (for the principal engineer). Metabase's open-source edition is AGPL v3, which matters specifically for product embedding. In this design Metabase serves internal analysts; product embedding is done by the VisionWrights widget (proprietary, source delivered) or Superset (Apache 2.0). If Metabase embedding were ever wanted, that is a commercial-license conversation with Metabase — flagged here in advance.

03 · Deployment models

Three deployment shapes, in increasing order of client ownership.

The platform subscription covers the assembled software, its operation, upgrades, and support in every model; what varies is where the infrastructure runs and who holds the data.

A · VisionWrights-hostedB · HybridC · In the client's cloud
Where it runsIsolated single-tenant environment operated by VisionWrights (evaluations typically start here)Pipeline + warehouse in the client's AWS; VisionWrights operates tooling and deploys into itEverything in the client's cloud account: dbt against the client's warehouse (e.g. Redshift), Dagster on ECS/MWAA (or the client's orchestrator), BI tools + widgets on the client's infrastructure
Who holds the dataVisionWrights environment (contractually bounded)The clientThe client
Procurement shapeSingle subscription, uptime commitments baked inSplit: client infrastructure + VisionWrights subscriptionClient infrastructure; VisionWrights subscription covers build, operation, and support
FitsFastest start; evaluation and early phasesTransition stateTeams that want full infrastructure ownership

These are phases as much as options: A is how a team evaluates quickly, C is where the stack was designed to land. dbt's warehouse adapters are first-class, and any prior investment in the client's own warehouse is the destination of this design — the semantic layer and BI tools sit on top of the warehouse the client already owns. Moving A→C is configuration and deployment work; every component in §2 runs identically wherever it is deployed. VisionWrights operates the platform as code in every model: deployment, configuration, and monitoring are programmatic, so the same automation that runs model A runs identically inside the client's account — under a scoped deployment role the client grants and can audit. Hybrid and client-cloud engagements include that role as part of environment setup.

04 · Ownership, layer by layer

What the client's engineers can read, change, and take with them.

The table shows, layer by layer, what lives in the client's own repository and infrastructure on this platform — next to how the same layer behaves in a typical proprietary BI suite.

LayerTypical proprietary BI platformIn this platform
Transformation logicGUI-defined tiles/flows, exportable only as screenshotsPlain SQL in dbt, in the client's git repo; testable, diffable, reviewable — and dbt runs natively against the client's own warehouse, inside the client's cloud account
WarehouseThe vendor'sThe client's (model C), or Postgres operated by VisionWrights (models A/B)
Measure definitionsImplicit in cards/calculated fields, re-implemented per dashboardNamed, versioned, documented in the semantic layer; one definition serves every tool, with row-level security enforced at the API
DashboardsThe vendor's, tied to the vendor's platformThree interchangeable OSS tools + the VisionWrights widget, source delivered under license
OrchestrationThe vendor's schedulerDagster (OSS) — swappable for MWAA/Airflow

Because every transformation lands as portable SQL against a warehouse the client owns, the work done on this platform stays valid under any future infrastructure decision — the dbt models, tests, and measure definitions travel with the client.

05 · Migration method

The method keeps production stable at every stage.

Production surfaces the business relies on are the operating constraint in every migration, and the method is designed around them: five gates, each precise about what is being decided and what is at stake at that stage.

GateWhat happensWhat is at stake at this stage
1 · Parallel buildPipelines rebuilt from the current platform's artifacts as the reference; the incumbent stays untouched and authoritative; users notice nothingBudget only — everything keeps running exactly as today
2 · Reconciliation, continuouslyEach migrated dashboard proven against the incumbent's numbers — row counts, sums, distinct counts, to the unit; the proof is a standard dbt test that re-runs on every buildFailures block promotion; a number that drifts is caught on the next build
3 · Internal trialNew dashboards and embeds mounted on an internal page; the client's teams use them alongside the incumbent and file feedbackInternal feedback only; production surfaces are untouched
4 · Per-surface signoffEach production surface cuts over only when the client's team signs off on that surface; surfaces move independentlyBounded per surface; rollback is the incumbent embed that never stopped working
5 · Incumbent retirementLast — after all surfaces and direct-access users are migrated and stableThe savings start when the client says so, in whole or in part

Migration tooling that compresses the timeline

The speed in this method comes from tooling; the safety comes from the gates above. VisionWrights built a translation engine that parses the machine-readable flow definitions behind GUI-defined ETL tools and emits idiomatic, layered dbt models with their tests — plus a growing registry of flow-pattern translations that improves with every pipeline migrated. Engineer review and the reconciliation harness gate every generated model before it counts. The effect: pipeline rebuilds that take days per dashboard by hand land in hours, at reconciliation-proven fidelity. The generator covers deterministic patterns; genuinely novel shapes are built by hand and added to the registry, so the tooling covers more of each successive pipeline.

Method notes for the reviewing engineer

Deterministic logic in the incumbent (ETL tiles, dataset views, calculated fields) is extracted and re-expressed as dbt SQL, then verified against the incumbent's own output — treating it as the oracle, so correctness is demonstrated rather than asserted. Snapshot and recursive-accumulation patterns are re-implemented as incremental models or change-log views, validated both ways: the incremental build and a from-scratch rebuild must produce identical results before the model is accepted. The method reconciles every migrated pipeline to the unit — row counts, sums, and distinct counts, including revenue matched to the cent — with every check left running as a permanent test in the client's repository.

06 · Operating & support models

Three operating models on one platform, moving at the client's pace.

DimensionVendor-operatedCo-owned (typical target)Client-owned
Pipeline changes & new metricsVisionWrights builds on requestVisionWrights builds; the client's analysts review PRs and increasingly author dbt models (they are SQL)The client's team; VisionWrights on retainer for escalation
Dashboard iterationVisionWrightsThe client's analysts, directly in the BI tool — the point of the decoupled designThe client's team
Ops visibilityIdentical in all models: analysts, operators, and engineering get the portal + Dagster run histories, data previews, per-step SQL, and test results — the same instrumentation shown in evaluations
Cost structurePlatform subscription (the assembled software, its operation, upgrades, and support) + build hoursClient infrastructure at cost + platform subscriptionClient infrastructure at cost + optional retainer

The design supports vendor support and an eventual in-house hire at the same time: because the artifacts are standard (dbt, SQL, git), a future in-house data engineer inherits a documented, tested codebase rather than a vendor relationship — and the co-owned model above is explicitly a glide path toward that hire.