Context
Spec 9.4 defers live-write. This issue activates it with the smallest design that is correct on both local and S3 storage, based on the storage research from the 2026-06-10 design session.
The write problem on object storage is churn, not latency: commits run ~1.2s p50 on S3 Standard (lance-format/lance#6752 benchmarks), commit cost grows with fragment count (lance-format/lance#5194), and per-turn writes from live sessions would produce exactly that fragment/version/OCC churn. Ingest latency itself is not user-facing - no agent blocks on pond storing its transcript.
Design: micro-batched single-writer ingest
- One pond ingest process per data dir tails/receives live events and buffers them in memory.
- Flush one
merge_insert batch per interval (~30-60s) or size threshold, whichever first.
- Single writer per data dir means no OCC contention from live-write itself; multi-host cron sync remains the existing OCC story.
- Identical behavior against local and object-store URLs - no architecture fork.
This is deliberately one tier below MemWAL. MemWAL solves many-independent-writers contention at read-path, ops, and maturity costs (experimental spec; correctness fixes for flushed-memtable search visibility only landed in lance v7.1 betas - pond is pinned to 7.0.0). Adoption trigger, recorded so it is not relitigated: adopt MemWAL only when (a) hosted multi-writer ingest exists - many independent processes committing to the same tables - and (b) pond is off the 7.0.0 pin onto a line where the 7.1 read-path fixes have stabilized.
Hygiene that must hold (mostly already true)
Unlocks
Context
Spec 9.4 defers live-write. This issue activates it with the smallest design that is correct on both local and S3 storage, based on the storage research from the 2026-06-10 design session.
The write problem on object storage is churn, not latency: commits run ~1.2s p50 on S3 Standard (lance-format/lance#6752 benchmarks), commit cost grows with fragment count (lance-format/lance#5194), and per-turn writes from live sessions would produce exactly that fragment/version/OCC churn. Ingest latency itself is not user-facing - no agent blocks on pond storing its transcript.
Design: micro-batched single-writer ingest
merge_insertbatch per interval (~30-60s) or size threshold, whichever first.This is deliberately one tier below MemWAL. MemWAL solves many-independent-writers contention at read-path, ops, and maturity costs (experimental spec; correctness fixes for flushed-memtable search visibility only landed in lance v7.1 betas - pond is pinned to 7.0.0). Adoption trigger, recorded so it is not relitigated: adopt MemWAL only when (a) hosted multi-writer ingest exists - many independent processes committing to the same tables - and (b) pond is off the 7.0.0 pin onto a line where the 7.1 read-path fixes have stabilized.
Hygiene that must hold (mostly already true)
Unlocks