Serverless HTAP, built in Rust, on every K3 bucket. Run analytical SQL with parallel scans, ACID transactions, and transactional-fresh reads — with no warehouse to run.
The planner opens the Delta target, enumerates partitions, and fans out one Ignite worker per partition. Partial results stream back to a reducer that does sum / count / top-k / welford merges in pure compute.
Writes append to a WAL on S3 — every PUT is a single object, so concurrent writers don't fence each other. A separate compactor drains WAL → Delta in batches. Read with freshness: 'strong' to merge WAL + Delta in the same query — newly-written rows are visible immediately, with no staging or replica lag.
freshness: eventual· Delta onlyfreshness: strong· WAL ∪ Deltawarehouse_querywarehouse_insertwarehouse_mergewarehouse_plannerwarehouse_aggregate_resultshtap_upserthtap_compact_tickhtap_queryEvery INSERT, MERGE and OPTIMIZE creates a new transactional snapshot. Query any version with AS OF VERSION or AS OF TIMESTAMP — or roll the whole table back with one statement.
Use the Python or TypeScript SDK, the dodil CLI, any Postgres-wire client (Metabase, DBeaver, Grafana, Tableau), or the raw TableService gRPC. Same table, same SQL.
Real-time dashboards, audit trails, ML feature stores, streaming sinks — same table type, same SQL. No separate “OLTP” and “OLAP” stacks.
user_id = 47291Every K3 table opens as a full spreadsheet in the browser — sort, filter, conditional formatting, pivots, comments, and Excel-compatible formulas like =SUMIFS, =VLOOKUP, =XLOOKUP running live against the table. No CSV export. No separate “data tool”.