Your workflows.
Your cloud.
Every result measured.
Fletch is a self-hosted data workflow platform. Analysts build on a visual canvas, a typed intermediate representation validates every step, and a Rust engine runs it against 71 sources. Alteryx estates convert with evidence, not promises.
SAP HANA Cloud
Snowflake
Databricks SQL
Workday
BigQuery
Amazon S3
Fabric OneLake
Oracle Fusion
NetSuite
PostgreSQL
SQL Server
Dynamics 365
Iceberg REST
Unity Catalog
SAP HANA Cloud
Snowflake
Databricks SQL
Workday
BigQuery
Amazon S3
Fabric OneLake
Oracle Fusion
NetSuite
PostgreSQL
SQL Server
Dynamics 365
Iceberg REST
Unity Catalog
One typed document, from the canvas to the engine.
Every workflow is a Fletch IR document: a JSON graph of operators, typed ports and parameters. The canvas edits it, the crate validates it, the planner compiles it, the engine runs it, and the importer produces it from Alteryx. Nothing is translated twice.
Build
A visual canvas with a one-click tool palette, drag-to-connect wiring, keyboard-only construction and an Arrange that lays the graph out for you. Every structural change round-trips through the validator, so what you see is the canonical document.
- 50 core operators across Tidy, Combine, Reshape, Extract, Measure and Flow
- Column schemas inherit along every edge
- Settings forms generated from the operator contract
Run
A planner pushes what it can down to the source as SQL and runs the rest as local operator fragments on an embedded, single-threaded DuckDB kernel. A sandbox run is bounded by construction; a full run is a separate, explicit act.
- Per-step telemetry: rows in and out, bytes, duration, kernel
- Named unit tests per workflow, checked schema, cardinality, then rows
- Results land in Browse, inside Fletch
Govern
Groups are your directory's groups, refreshed on every sign-in. Every connection, workflow and schedule has an owner; sharing conveys use, never change. Only an administrator can create a place for data to go.
- Folder permissions to an AD Group or a person
- Secrets sealed per owner in the credential vault
- Hash-chained, append-only audit log
A canvas that cannot drift from the engine.
The console never invents semantics. Each change posts the working document to the validator and renders what comes back, so a step that reads Ready on screen is a step the engine accepts.
- Palette groups analysts recognise: Data in & out, Tidy, Combine, Extract, Reshape, Measure, Flow
- Ports carry their schema:
left · 7,right · 4,in · 10 - Plan and Lineage panels read the same document, no data touched
Columns coming in. Columns going out. Nothing hidden.
Open any step and Fletch shows the columns arriving on each port, their types and nullability, the expressions you wrote, and the columns the step will produce. The form is generated from the operator's contract; the raw JSON is one click away.
- Arrow types throughout:
int64,utf8,date32,decimal(18,2) - Status is a choice: Ready, Needs setup, Not available yet
- Anything still wrong is reported on the step, in the engine's own words
71 connectors. One credential vault.
Warehouses, ERPs, SaaS applications, databases, lakehouse catalogs and object stores, each with its own connection form and a Test connection button. Secrets are sealed in the vault on save, encrypted at rest, and never returned by the API.
- SAP HANA Cloud, S/4HANA, Datasphere and SuccessFactors alongside Snowflake, Databricks and BigQuery
- Workday, NetSuite, Oracle Fusion, Salesforce, ServiceNow, Dynamics 365
- Iceberg REST, Unity Catalog, Nessie, Glue, Delta Sharing as sources
Converted, run, compared. Then, and only then, certified.
The importer crawls a whole estate: workflows, macros, analytic apps, packaged workflows and the data files they reference. Each tool mapping was established by running probes against Alteryx's own engine and recording what came back, including the predictions that were wrong.
Measured, not assumed
Summarize's plugin string never matched a real workflow across 36,914 tool instances in the reference estate until a probe corrected it. That is the standard every mapping is held to.
Certified with provenance
A workflow is certified when its converted output matches expected outputs row for row, and the verdict names where those expectations came from: produced by Alteryx, or authored. Never certified unqualified.
Untrusted by default
A packaged workflow is treated as input, not code: path traversal refused, expansion capped, nothing executed. Every file is content-addressed before it is parsed, so a re-import is idempotent by construction.
Three containers, your cluster, your object storage.
A Node console for the API and the user interface, a Rust engine for execution, and an Arrow Flight SQL service for engine-to-engine transfer. CockroachDB holds the metadata plane. Helm chart for Kubernetes, Compose for a laptop.
Bring an estate. Leave with a measured conversion report.
Point the importer at a folder of workflows and see what converts, what runs, and what diverges, with the evidence beside each verdict. A demo takes forty-five minutes and uses your shapes, not ours.