Sign up now for early access to the Xorq Desktop app Xorq Desktop early access ./waitlist
XorqXorq
./waitlist

Xorq Cache

Work runs once and is reused, not recomputed. Same expression, same sources, same hash is the whole cache key.
productxorq cache
xorq cache

Work runs once. Reused, not recomputed.

Every result is cached with the expression and source versions that produced it. A repeated question replays from the cache; the warehouse never bills the same answer twice.

keyed on contentExpression + source versions → one hash
replayed on hitSame question, same answer, no warehouse run
recomputed on changeA new source version changes the key downstream
kept with the runEvery cached value carries its lineage and approver
01how it works

Same expression, same sources, same hash. That is the whole cache key.

There is no TTL to tune and no cache to warm. When an agent runs an expression, Xorq hashes it together with the versions of the tables it reads. If that hash has a result, the result is replayed. If not, the warehouse runs it once and the entry is stored.

xorq cache · run log · finance 5 runs · 1 recompute · 3 hits reused
timecallerexpressionhashcachelatencycost
09:02reporting-agentrevenue_west_q3@7be9896eMISS4.2 swarehouse billed
09:05finance-agentrevenue_west_q3@7be9896eHIT12 ms$0 · replayed
09:41board-packrevenue_west_q3@7be9896eHIT9 ms$0 · replayed
09:58M. Chenrevenue_west_q3@7be9896eHIT8 ms$0 · replayed
10:15reporting-agentrevenue_west_q3 · stg.sales v14@c41e07aaMISS4.0 swarehouse billed
same expression · same source versions → same hash → same cached resultsource changed at 10:15 → new hash → recomputed once
02what it saves

Three bills go down at once.

Most agent cost is re-derivation: the same question, asked by a different person or a different agent, computed again from scratch. The cache turns that into a lookup.

warehouseNever billed twiceA repeated question replays the cached result. The warehouse runs a query only when the expression or its sources have changed.
tokens60% fewer tokensOn DABStep, agents reusing cached Ledger work went from 566k to 228k tokens per task, and a smaller model did the work. Less re-derivation, less context.
timeMilliseconds, not minutesHits return in the time it takes to read the entry. The second analyst, the board pack, and the audit all get the same figure without waiting on the warehouse.
dabstep·450 questions over payment data · same model, same prompt, only the catalog changes
03never stale

When a source changes, only what depends on it recomputes.

A cached value is not a snapshot that ages. Its key includes the version of every source it read. When one source changes, only the entries downstream of it get a new key and recompute; everything else keeps replaying.

raw.paymentsHIT
source · v31 · unchangedSame rows, same hash. Nothing to redo.
stg.salesCHANGED
source · v13 → v14 · changedA new version of one source changes the key for everything downstream of it.
dim.regionHIT
source · v4 · unchangedNot downstream of the change. Reused as is.
revenue_west_q3MISS
@7be9896e → @c41e07aaRecomputed once on the warehouse, then cached under the new hash. The old entry stays addressable.
what a hit guarantees
same expressionsame source versionssame approver on recordreproducible from the entryold versions stay addressable
04where it lives

Inside your perimeter, like everything else.

Cached results are aggregates, not rows. They sit next to the Ledger, in the storage you already run, under your keys.

desktopLocal sandboxCached aggregates live on the analyst’s machine, next to the Ledger repo. Bulk rows never leave the warehouse.
headlessYour VPCCache storage in your object store or warehouse tables. Your agents share hits across teams inside your network.
bothContent-addressedThe key is the hash of the expression and its source versions. Two teams asking the same question share one entry without coordinating.
// bring last month's warehouse bill

Find out how much of it was the same question.

In a working session we take a week of your agents' query history, group it by expression, and show what would have replayed from the cache instead of running again.

Talk to us
also in the platform:xorq ledger