M4: implement aco.lake write path + pilot OPPS ingestion to the lake #513
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implement the
aco.lakeContextwrite path (currentlyContext.load/saveand_execute_transpiledraiseNotImplementedError) and pilot OPPS Addendum Bingestion to the lake store chosen in M3 (Iceberg via Nessie/RustFS, or
DuckLake). Concurrent notebook readers + batch writers coexist via snapshot
isolation — no file lock.
Background:
docs/superpowers/specs/2026-07-08-duckdb-concurrency-streaming.md(option E). Depends on M3. Also closes the standingaco.lakeremote-execution gap.Implemented in
446f1b9398, per the M3 decision (#512: DuckLake, not Iceberg):aco.lake.DuckLakeContext— subclassesDuckDBContext, soload/save(append/replace, catalog mapping, narwhals frames) are inherited; only the connection wiring differs (ducklake + httpfs extensions, RustFS S3 secret, ATTACH the catalog as the default database). Postgres DSN in prod, file catalog in tests. This resolves the standing write-path gap: there is now a concrete, write-capable lake context.dev/scripts/publish_opps_to_lake.pypublished the OPPS reference tables throughContext.save(mode="replace")to theducklakepostgres catalog +s3://lakehouse/ducklake/—addendum_b219,665 rows in 2.6s,apc_weight7,776,skin_sub_addendum_b2,520, all read-back verified throughContext.load.stack.toml [lake.ducklake]; 6 tests on a local file catalog (same code paths, no services); CI preinstalls the ducklake extension (same race class as #515).Notes: the issue mentioned Iceberg via Nessie as one option — the spike chose DuckLake, and Nessie's REST endpoint was fixed as a fallback (#512).
engine._execute_transpiled(remote Trino/Databricks execution) is orthogonal to this path — DuckLake executes locally in DuckDB — and stays tracked by the enterprise-context work. Next: M5 #514 (notebooks read the lake, cut ingestion over, retire the monolith for reference data).