Customers use AS OF queries to answer the question every incident review asks: what did the system believe at 14:02? Keeping 30 days of history sounds expensive. It costs us less than a single extra replica.
Versions, not snapshots
Basalt never overwrites a row. Each change appends a new version tagged with the log sequence that produced it. A query AS OF a timestamp maps that time to a sequence and reads the newest version at or below it.
The index does the work
- Versions of one key sit next to each other on disk, newest first.
- A sparse index stores one entry per 4 KB block, so seeking to a version is one block read.
- Old versions compact into columnar files after 24 hours and compress about 9 to 1.
The result: a point read 30 days back takes 6.1 ms at p99, against 4.2 ms for the present. History adds 14% to storage on a typical workspace.
Sigrún leads the query engine team in Reykjavík. Before Basalt she worked on storage at a Nordic payments company, where she learned to distrust any latency number without a percentile next to it.



