Specification
Lakestream is specified by two documents: the Storage Spec, which defines format version 3, and the Materialization Spec.
Lakestream is an open API and specification for stream storage on object storage, with a stream materialization framework that defines how a stream becomes a lakehouse table. Ursa implements it as a storage engine; Ursa for Apache Kafka is a Kafka distribution built on it. Both are open source under Apache 2.0.
The specifications
| Specification | Covers | Version | Status |
|---|---|---|---|
| Lakestream Storage Spec | WAL objects, compacted objects, the offset index, and the metadata store model | Format version 3 | Complete |
| Lakestream Materialization Spec | The policy model for how a stream becomes a lakehouse table | Describes lakestream-api 1.0.0 | Released |
| Implementation status | What each implementation supports against both specs | — | — |
How to read them
Both specifications state requirements with uppercase keywords, interpreted per BCP 14 (RFC 2119, RFC 8174).
Conformance is stated by role, not by implementation as a whole. A system conforms for the roles it implements:
- Storage Spec — Reader, Writer, Compactor, and Catalog. See Conformance.
- Materialization Spec — Resolver and Materializer. See Conformance.
How the specifications change
Changes to either specification go through Lakestream Improvement Proposals (LIPs), tracked at openlakestream/lips.
API and implementations
- The Java API reference documents
lakestream-api. - Ursa is the implementation, as a storage engine.
- Ursa for Apache Kafka (UFK) is a Kafka distribution built on it.
- Model-checked protocols and the streaming-proof harness are at Verification.
Protocol integration
Kafka record validation, producer state, and protocol errors stay in the Kafka integration; they are not part of these specifications. See Appendix A: Kafka binding in the Storage Spec.