Timelaketimelake
DocsBenchmarksRoadmapSpecContribute
Apache 2.0 ·
Roadmap

DoneIn progressPlanned

Tables and storage

Done:1. Iceberg tablesDone:2. CommitsDone:3. Object-store catalogIn progress:4. Time-series table contractIn progress:5. File layout and encodingsIn progress:6. Last-value indexDone:7. One-request table state and version checksDone:8. Table format versions and upgradesDone:9. SettingsPlanned:10. Supplemental timestamps

Writing

Done:11. AppendsDone:12. Late data and dedup on readDone:13. Writes from WebAssemblyPlanned:14. Hot tier and seconds-fresh readsPlanned:15. BackfillIn progress:16. Import and migrationPlanned:17. DeletesPlanned:18. GDPR erasure

Maintenance

Done:19. CompactionIn progress:20. Maintenance runs, retention and expiry

Reading

In progress:21. Timelake readerDone:22. Block cacheDone:23. Filter pushdownDone:24. Pruning with long IN listsDone:25. Newest-first scansDone:26. Scans in series orderDone:27. Materialized rollups

SQL functions

In progress:28. Function libraryDone:29. Time buckets and gap fillingDone:30. Signal aggregatesDone:31. Downsampling with m4

Integrations

Planned:32. REST catalogPlanned:33. DuckDB extensionPlanned:34. Snowflake connectionPlanned:35. Multitenancy

Services

Planned:36. Ingestion and rulesPlanned:37. Data to eventsPlanned:38. Static read modelsPlanned:39. Computed metricsPlanned:40. Agent access with permission setsPlanned:41. Device syncPlanned:42. Edge gatewayPlanned:43. Server mode

Benchmarks

In progress:44. Benchmark harness: timebenchIn progress:45. Industrial IoT benchmarkPlanned:46. Agent benchmark

Background

ArchitectureDeployment and cost modelEmbedded engine: DataFusionLandscape and positioningLicense and open corePurpose and requirementsReleases
TimelaketimelakeThe open time-series lakehouse.
v0 · Apache 2.0 · Contribute · GitHubBuilt on Apache Arrow, Apache DataFusion, Apache Parquet, and Apache Iceberg.
DocsBenchmarksRoadmapSpecContribute

Spec 14 · Writing

Hot tier and seconds-fresh reads

PlannedUpdated 2026-10-12View on GitHub
Versions
Not released yet
Roadmap
Seconds-fresh data and ingestion, Technical preview
Related
11. Appends, 21. Timelake reader, 36. Ingestion and rules

Summary

Data visible to the Timelake reader within about a second of being written, before it is committed to the lake. Freshness comes in three modes: lake only (built), an object-store WAL (about 1 s, no extra infrastructure), and a managed hot store (sub-second); the reader merges the hot tier after each commit's WAL high-water mark.

Design

Freshness tiers (users choose; the default will be decided by profiling B vs. C — Q5, #107)

ModeExtra infraFreshness (Timelake reader)Freshness (plain DuckDB)Notes
A. Lake-only (built)nonecommit interval (~1 min)commit intervalSimplest and cheapest. No moving parts.
B. Object-store WALnone (uses the same bucket)~1 scommit intervalArrow IPC segments appended to object storage, coordinated with conditional writes (S3 If-None-Match/If-Match; GCS/Azure preconditions). Optionally on S3 Express One Zone for lower latency. Still serverless.
C. Managed hot storeValkey/Redis, Postgres, or DuckDBsub-secondcommit interval*Also serves a "latest value per series" cache and sub-ms point lookups.

*Plain DuckDB can see hot data via a generated view that unions the Iceberg scan with the hot store (e.g. DuckDB's Postgres scanner), or via the DuckDB extension (spec 33).

Lake/hot-tier consistency

  • Each lake commit records the WAL high-water mark (per ingest partition) in its snapshot summary.
  • A Timelake reader reads a snapshot and then reads from the hot tier only after that mark. This avoids gaps and double counting, with no coordination service.
  • The hot tier is a cache of uncommitted and recent data, never the source of truth. It can be wiped and rebuilt from the WAL or the lake.
  • The hot tier is accessed through a HotStore trait so backends are pluggable (R4).

Open questions and issues

  • #40 Hot tier: prototype the object-store WAL on Lance's MemWAL design (Q5)
  • #53 WAL (mode B): design rules
  • #86 Spike: SlateDB for the object-store WAL (mode B) and a point-lookup index
  • #107 Question: default hot tier, object-store WAL (mode B) or a managed hot store (mode C)

History

  • 2026-10-11: freshness tiers and consistency (SPEC.md §8)
  • 2026-10-19: moved from SPEC.md into spec 9, then into this spec when the specs were regrouped one per feature.