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 39 · Services

Computed metrics

PlannedUpdated 2026-10-13View on GitHub
Versions
Not released yet
Roadmap
Apps and dashboards
Related
27. Materialized rollups, 37. Data to events, 38. Static read models

Summary

User-defined Python functions whose results Timelake keeps up to date the way it keeps rollups: recomputing the windows each commit affects.

Design

Let users define a Python function and the result it produces, for example a computed metric, and have Timelake keep that result up to date automatically, the way materialized rollups stay up to date.

  • Definition: the function, its inputs (tables, series selection, window) and its output table with a normal contract. Sketch:
    @tl.metric(inputs={"flow": "iot.flow", "power": "iot.power"},
               output="iot.pump_efficiency", window="1m", series="pump_id")
    def efficiency(flow: pl.DataFrame, power: pl.DataFrame) -> pl.DataFrame: ...
  • Incremental like rollups: on each commit, compute which output windows are affected (snapshot diff), pass the inputs as Arrow (zero-copy into Polars or pandas), and replace those windows in the output table. Late data recomputes the affected windows the same way it does for rollups.
  • Contract for functions: deterministic and per-window by default, so any window can be recomputed. State carried across windows is opt-in.
  • Where it runs: in the writer's process (Python bindings), in a scheduled timelake maintain run, or in a Lambda. There is still no server. A hosted version needs sandboxing.
  • Composes: computed metrics are ordinary tables, so they can feed read models (F2) and events (F3). SQL and Rust functions can follow on the same mechanism.

Open questions and issues

  • #114 Question: running user Python safely in a hosted service

History

  • 2026-10-13: planned for later (F4, SPEC.md §21.4)
  • 2026-10-19: moved from SPEC.md into its own spec.
  • 2026-10-19: specs regrouped one per feature, with milestones on the roadmap.