? What is Xorq?
You write a declarative expression, Xorq saves it to an immutable catalog entry (expression + metadata + cached results) that can be executed, diffed, shared, and served.
? How is this different from a data catalog?
Traditional catalogs document tables for humans — name-addressed, passively consumed. Xorq catalogs executable expressions for agents — input-addressed, actively composed. A traditional catalog answers “what tables exist?” Xorq answers “has this exact computation been done before?”
? Do I need to migrate?
No. Xorq connects directly to your existing infrastructure (Snowflake, Databricks, S3). No migrations required.
? What does “input-addressed” caching mean?
The identity of a cached result is determined by hashing the expression and all of its inputs. If the inputs haven’t changed, the result is reused without re-execution. Traditional caching asks “is this expired?”. Input-addressed caching asks “are the inputs the same?”.
? What does it mean to “serve an expression”?
Serving exposes a compiled expression as a remote endpoint over Arrow Flight so other services or agents can send inputs and receive results without re-implementing pipeline logic.
? How does Xorq compare to dbt Fusion?
dbt Fusion gives you a faster, Rust-powered dbt with SQL-aware validation. Xorq gives you an expression graph that spans languages and engines, with a catalog that versions, caches, and governs the full pipeline. If your world is SQL models, Fusion is a meaningful upgrade. If your world is SQL + Python + ML across multiple engines, xorq is built for that from the ground up.
? What about imperative code or custom logic?
Escape hatches exist via UDFs and Arrow-based interfaces — opaque stages can conform to the same contract. Declarative at the top level, imperative underneath when necessary. Like unsafe in Rust — controlled, explicit, bounded.
? How does Xorq handle merge conflicts?
Same expression, same hash, automatic dedup. Different expression, different hash, no collision. Parallel work either converges or coexists — conflicts auto-resolve because identity is determined by content, not location.